is there way make recyclerview have checkmarks in listview? of example see don't have checkmark-like features. instead highlight row when user clicks on item in list not behavior desire. please suggestions? thanks
i :
first, have sparsebooleanarray in adapter initialize in constructor. sparsebooleanarrays map integers booleans can know view has been selected , hasn't.
public class recycleradapter extends recyclerview.adapter<recycleradapter.dataviewholder> { private sparsebooleanarray selecteditems; public recycleradapter(context context, list<data> datalist){ selecteditems = new sparsebooleanarray(); } the viewholder implements clicklistener:
public class dataviewholder extends recyclerview.viewholder implements view.onclicklistener{ public dataviewholder(view itemview) { itemview.setonclicklistener(this); } @override public void onclick(view v) { // condition below returns false if item isn't in array. if (selecteditems.get(getposition(), false)) { //if in array delete it. clicking second time on item uncheck it. selecteditems.delete(getposition()); ((checkbox)v.findviewbyid(r.id.checkbox)).setchecked(selecteditems.get(position, false)); } else { selecteditems.put(getposition(), true); // here ref view checkbox , *check* ((checkbox)viewholder.itemview.findviewbyid(r.id.checkbox)).setchecked(true); } } } at point have multiples items checked checkbox in recyclerview since views recycled. prevent , have checkboxes want checked change onbindviewholder method checks or unchecks checkbox @ bind time :
@override public void onbindviewholder(dataviewholder viewholder, int position) { ((checkbox)viewholder.itemview.findviewbyid(r.id.checkbox)).setchecked(selecteditems.get(position, false)); } i didn't test i've same code , works. if have problem let me know.
Comments
Post a Comment