如果状态值为1,我要使复选框被选中,我应该怎么做? 你们能帮帮我吗? 我是一个新手,很好奇如何使它工作,谢谢:)
下面是我的适配器类:
public class AdapterInventaris extends RecyclerView.Adapter<AdapterInventaris.HolderData> {
private List<InventarisModel> mList ;
private Context ctx;
private CheckBox checkbox;
public AdapterInventaris (Context ctx, List<InventarisModel> mList)
{
this.ctx = ctx;
this.mList = mList;
}
@Override
public AdapterInventaris.HolderData onCreateViewHolder(ViewGroup parent, int viewType) {
View layout = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_list_inventaris, parent, false);
AdapterInventaris.HolderData holder = new AdapterInventaris.HolderData(layout);
return holder;
}
@Override
public void onBindViewHolder(AdapterInventaris.HolderData holder, int position) {
InventarisModel um = mList.get(position);
holder.status.setText(String.valueOf(um.getStatus()));
holder.alat.setText(um.getAlat());
holder.checkbox.setOnCheckedChangeListener(null);
holder.um = um;
}
@Override
public int getItemCount() {
return mList.size();
}
class HolderData extends RecyclerView.ViewHolder {
TextView alat,status;
InventarisModel um;
public CheckBox checkbox;
public HolderData(View v) {
super(v);
status = (TextView) v.findViewById(R.id.txtNama);
alat = (TextView) v.findViewById(R.id.txtAlat);
checkbox = v.findViewById(R.id.checkbox);
}
}
}
下面是我在fragment类中的createview:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_peminjaman_inventaris, container, false);
mNama = (Spinner) v.findViewById(R.id.spnNama);
mAkhirPeminjaman = (Button) v.findViewById(R.id.btnAwalPeminjaman);
mAwalPeminjaman = (Button) v.findViewById(R.id.cari);
mCari = (Button) v.findViewById(R.id.cari);
mSimpan = (Button) v.findViewById(R.id.btnSimpan);
mCancel = (Button) v.findViewById(R.id.btnCancel);
msearchNama = (EditText) v.findViewById(R.id.txtSearchInvest);
mRecycler = (RecyclerView) v.findViewById(R.id.recyclerIventaris);
mRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
ApiRequestInventaris api = RetroServerInventaris.getClient().create(ApiRequestInventaris.class);
Call<ResponseInventarisModel> getdata = api.getInventaris();
getdata.enqueue(new Callback<ResponseInventarisModel>() {
@Override
public void onResponse(Call<ResponseInventarisModel> call, Response<ResponseInventarisModel> response) {
Log.d("RETRO", "RESPONSE : " + response.body().getKode());
mItems = response.body().getResult();
mAdapter = new AdapterInventaris(getContext(), mItems);
mRecycler.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
}
@Override
public void onFailure(Call<ResponseInventarisModel> call, Throwable t) {
Log.d("RETRO", "FAILED : respon gagal");
}
});
return v;
}
}
请按以下方式修改您的OnBindViewHolder()
:
@Override
public void onBindViewHolder(AdapterInventaris.HolderData holder, int position) {
InventarisModel um = mList.get(position);
holder.status.setText(String.valueOf(um.getStatus()));
holder.alat.setText(um.getAlat());
holder.checkbox.setOnCheckedChangeListener(null);
holder.um = um;
holder.checkbox.setChecked(um.getStatus() == 1); // if status 1, then set checked
//status to true
}