android ListView CheckBox全部选定并正确显示复选状态(非显示条目)
网上Google了一下,发现都是用自定义界面后,CheckBox.setChcked(true);这个方法只能选定显示条目的状态。再者当我们要GetAllChecked 条目时,根本不会记录那个已经选定(除了显示的),只能自己写了。这里主要用到了自定义一个CheckIDs 的ArrayList 来保存我确实已经选定的ID,注意只有ID才是唯一的(发现也就是data数据集的位置),没有细致考究,有空再考究。
//生成适配器的Item和动态数组对应的元素 CheckBoxAdapter sa = new CheckBoxAdapter(this,al,//数据源 R.layout.personsavelistitem,//ListItem的XML实现 //动态数组与ImageItem对应的子项 new String[] {"SkyLoc","Info"}, //ImageItem的XML文件里面的一个ImageView,两个TextView ID new int[] {R.id.txtTitle,R.id.txtInfo} ); sa.CheckBoxID=R.id.chkSelect; LV.setAdapter(sa); LV.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View view, int position, long id) { CheckBox ck=(CheckBox)view.findViewById(R.id.chkSelect); ck.toggle(); } });