How to set List with unchecked checkboxes in android? -
i using custom list adapter show list checkbox, text , date this.
[checkbox] - [textview] - [date]
i populating list database want is, if check 1 list item got completed , fade out listview status in database should true using update set query don't want delete database. how set list items not checked.
my custom adapter:
public class customadapter extends arrayadapter<task> { private list<task> dataitem; private activity activity; public customadapter(activity a, int textviewresourceid, list<task> items) { super(a, textviewresourceid, items); this.dataitem = items; this.activity = a; } public static class viewholder{ public textview tasklisttitle; public textview createddate; public checkbox completedflag; } @override public view getview(int position, view convertview, viewgroup parent) { view v = convertview; viewholder holder; if (v == null) { layoutinflater vi = (layoutinflater)activity.getsystemservice(context.layout_inflater_service); v = vi.inflate(r.layout.tasklist_row, null); holder = new viewholder(); holder.tasklisttitle = (textview) v.findviewbyid(r.id.tasklisttitle); holder.createddate = (textview) v.findviewbyid(r.id.createddate); holder.completedflag = (checkbox) v.findviewbyid(r.id.completedflag); v.settag(holder); } else holder=(viewholder)v.gettag(); final task custom = dataitem.get(position); if (custom != null) { holder.tasklisttitle.settext(custom.gettasklisttitle()); holder.createddate.settext(custom.gettasklistcreated()); holder.completedflag.settext(custom.gettasklistcompletedflag()); } return v; } public synchronized void refresadapter(list<task> dataitems) { dataitem.clear(); dataitem.addall(dataitems); notifydatasetchanged(); } } is there need use oncheckedchecngelistner in class? have been through couple of examples no use. please help.
- declare int mstorecheckedposition = -1; // save current checked position
- you settag checkbox on every item position (on getview() function, holder.completedflag.settag(position))
you use oncheckedchecngelistner determine checkbox checked: if(checked == true). , follow guide:
if(mstorecheckedposition != -1){ // updateview int oldcheckedposition = mstorecheckedposition - listview.getfirstvisibleposition(); view child = listview.getchildat(oldcheckedposition); // holder , setchecked checked false if(child!=null){ ((viewholder)child.gettag()).completedflag.setchecked(false); } } // update database int currentcheckedposition = (integer)view.gettag(); // update database currentcheckedposition true value , mstorecheckedposition false value // update mstorecheckedposition mstorecheckedposition = currentcheckedposition;
and suggest in list adapter return databaseid getitemid, , use update database
Comments
Post a Comment