本文主要實現在自定義的ListView布局中加入CheckBox控件,通過判斷用戶是否選中CheckBox來對ListView的選中項進行相應的操作。通過一個Demo來展示該功能,選中ListView中的某一項,然後點擊Button按鈕來顯示選中了哪些項。
[1] 程序結構圖如下:
其中Person.java是實體類,MainActivity.java是Activity組件類。listitem.xml是自定義的列表每項布局文件。
[2] listitem.xml布局文件源碼如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:Android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:descendantFocusability="blocksDescendants">
- <CheckBox
- android:id="@+id/list.select"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- <TextView
- android:id="@+id/list.name"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Name"
- android:layout_gravity="center"
- android:textSize="20dp"
- android:layout_marginLeft="10dp"/>
- <TextView
- android:id="@+id/list.address"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Address"
- android:layout_gravity="center"
- android:textSize="20dp"/>
- </LinearLayout>
- </LinearLayout>
[3] main.xml布局文件源碼如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <Button
- android:id="@+id/show"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Show"/>
- <ListView
- android:id="@+id/lvperson"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"/>
- </LinearLayout>
[4] Person.java實體類源碼如下:
- package com.andyidea.bean;
-
- public class Person {
-
- private String name;
- private String address;
-
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getAddress() {
- return address;
- }
- public void setAddress(String address) {
- this.address = address;
- }
-
- }