您好,欢迎光临! 推荐您使用Chrome浏览器访问本站。

android listview checkbox

android 的listview 内部item的布局包含checkbox控件时,会遇到常见的问题:1.checkbox无法选择;2.选择的checkbox后滑动listview内容时会checkbox选择的值会刷新成原来状态值(即没选中);3.选择listview所有checkbox值之后,只能获取当前可见的checkbox的值,向后滑动选择的值无法获取。

解决以上问题可以采取以下方法:

1.设置checkbox的属性值为:android:focusable=”false” ,防止焦点独占,解决checkbox无法选择的问题。另外这里是点击ListView的item控制checkbox的状态改变,也就是让item接收clik事件,所以需要加上android:focusableInTouchMode=”false”这一属性。

2.重写Adapter,重写getView方法;

3.重写Adapter的getView方法时,为每个checkbox添加事件响应并记录选择状态,通过获取获取状态记录值获取所有选择的checkbox值。

需要注意的是第三点,在重写getView方法时,不要判断convertView == null,如果判断convertView == null再实例化相关的控件,则刷新的是局部控件(这个尚需要观点有待论证)。

 

参考:

http://www.yoyong.com/archives/433

http://www.itivy.com/android/archive/2011/12/14/android-listview-checkbox-problem.html

http://windrealm.org/tutorials/android/listview-with-checkboxes-without-listactivity.php

http://iaiai.iteye.com/blog/1064923

http://www.cnblogs.com/noTice520/archive/2012/02/17/2355415.html

您可能也喜欢