Android中ListView如何获取列表中选中的CheckBox

时间:2022-03-08 21:44:15




如题,在一个ListView中设置了CheckBox,如果选中其中的CheckBox,该如何获取。

Android中ListView如何获取列表中选中的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>