android如何实现ListView中的CheckBox的全选、反选、全不选 (2011-10-28 14:11:55)转载▼ 标签: it 分类: 移动手机应用开发 刚刚接触android开发一个月左右,因为公司项目的需要,我不得不马上将所学用于android平台下智能系统的开发,在开发中经常遇到问题,当然我也在这些问题中一步步成长。今天上午我遇到的问题是如何实现ListView中的CheckBox的全选、反选、全不选的功能。在网上查找了很多资料,但是贴上来都不适用,最后东拼西凑,然后结合自己项目的实际情况自己写出了代码实现了需要的功能。好了,在此我将代码贴在下面,供大家学习交流之用。
1、全选
for (int index = 0; index < controlActionView.getChildCount(); index++) {
LinearLayout layout = (LinearLayout) controlActionView.getChildAt(index);
CheckBox checkBox = (CheckBox) layout.findViewById(R.id.isselected);
checkBox.setChecked(true);
}
2、反选
for (int index = 0; index < controlActionView.getChildCount(); index++) {
LinearLayout layout = (LinearLayout) controlActionView.getChildAt(index);
CheckBox checkBox = (CheckBox) layout.findViewById(R.id.isselected);
if (checkBox.isChecked()) {
checkBox.setChecked(false);
} else {
checkBox.setChecked(true);
}
}
3、全不选
for (int index = 0; index < controlActionView.getChildCount(); index++) {
LinearLayout layout = (LinearLayout) controlActionView.getChildAt(index);
CheckBox checkBox = (CheckBox) layout.findViewById(R.id.isselected);
checkBox.setChecked(false);
}
看了上面的代码是不是很简单呢,其实知识都这样,编程更是如此。在遇到问题时,感觉这个问题是多么的深不可测。然后通过各种方式去查找资料解决问题。当我们找到解决方案时,感觉都很简单。该ListView中的布局文件如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="match_parent"> <TextView android:id="@+id/controlaction_id" android:layout_height="0dip" android:layout_width="0dip" /> <TextView android:id="@+id/controlaction_code" android:layout_width="180dip" android:layout_height="wrap_content" android:textSize="15pt" /> <TextView android:id="@+id/controlaction_name" android:layout_height="wrap_content" android:layout_width="180dip" android:textSize="8pt" /> <CheckBox android:id="@+id/isselected" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>