android - CheckBox OnCheckedChangeListener() called after recycled? -



android - CheckBox OnCheckedChangeListener() called after recycled? -

problem

i created custom expandablelistadapter handle checkboxes correctly when childrow clicked. added oncheckedchangelistener checkbox , passed item wanted operate on tag. weird things start happen when view clicking on got recycled(i beleive). expand parent, mark child, works fine, , when collapse parent , expand parent oncheckedchangelistener kid clicked before fired. isnt consistant, works not.

question

what making checkboxes alter state , how can avoid it? works fine exept these "random" changes of state.

very simplified code @override public view getchildview(int groupposition, int childposition, boolean islastchild, view convertview, viewgroup parent) { convertview = mlayoutinflater.inflate(r.layout.site_picker_list_item_child1, null); checkbox checkbox = (checkbox) convertview.findviewbyid(r.id.site_test_child_selected); final objecta obj = getchild(groupposition, childposition); checkbox.settag(obj); checkbox.setoncheckedchangelistener(new oncheckedchangelistener() { @override public void oncheckedchanged(compoundbutton checkbox, boolean ischecked) { ((objecta)checkbox.gettag()).selected = ischecked; if (ischecked) log.d(tag, "checked: " + ((objecta)checkbox.gettag()).name); else log.d(tag, "unchecked: " + ((objecta)checkbox.gettag()).name); notifydatasetchanged(); } }); homecoming convertview; } public class objecta { string name = "hello"; boolean selected = false; }

you need maintain checked state in objecta class

for example

class objecta{ boolean checked; }

in getview method

final objecta obj = getchild(groupposition, childposition); checkbox.setoncheckedchangelistener(new oncheckedchangelistener() { @override public void oncheckedchanged(compoundbutton checkbox, boolean ischecked){ obj.checked = ischecked; } }); checkbox.setchecked(obj.checked);

android checkbox expandablelistview expandablelistadapter

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -