如题,在一个ListView中设置了CheckBox,如果选中其中的CheckBox,该如何获取。
ListView lstres = (ListView)findViewById(R.id.lstres);// 结果列表
for (int i = 0; i < lstres.getChildCount(); i++) {
LinearLayout ll = (LinearLayout)lstres.getChildAt(i);// 获得子级
CheckBox chkone = (CheckBox) ll.findViewById(R.id.chkone);// 从子级中获得控件
System.out.println("chkone.isChecked():----------->"+chkone.isChecked());
}
如果直接将getChildAt获得的结果转型为CheckBox 会报错,因为ListView的直接子级是LinearLayout ,可以参照xml文件便得知,
list.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="fill_parent">
<TextView android:text="bb" android:id="@+id/txtid"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="200px" android:layout_height="wrap_content">
<TextView android:text="country" android:id="@+id/txtone"
android:textSize="22px" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:text="code" android:id="@+id/txtcode"
android:textSize="13px" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<CheckBox android:id="@+id/chkone" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginRight="0px"/>
</LinearLayout>