【发布时间】:2015-07-13 14:38:33
【问题描述】:
我正在编写我的第一个 Android 应用程序。出于测试目的,我在 mainactivity 中显示了一个对象列表(类 cElement)。
public class cElement {
private Integer Id;
private String Name;
private String Description;
private Boolean Checked;
....
}
ListView 通过自定义适配器链接到列表。自定义适配器扩展了 BaseAdapter,我从列表中扩展了每个元素的布局。
<?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="wrap_content" >
<TextView
android:id="@+id/id"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@+id/standard"
android:textSize="20dp"
android:layout_weight="1">
</TextView>
<TextView
android:id="@+id/name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@+id/standard"
android:textSize="20dp"
android:layout_weight="2">
</TextView>
<TextView
android:id="@+id/description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@+id/standard"
android:textSize="20dp"
android:layout_weight="3">
</TextView>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:id="@+id/checkBox"/>
</LinearLayout>
第一个问题:现在我想用一个按钮一步检查所有复选框。什么是好的风格?
- 我直接更新列表,调用适配器的notifyDataSetChanged方法
- 我在适配器内创建了一个方法 checkall() 并从外部调用它。
第二个问题:我想知道选中的是哪个 CheckBox。所以我创建了一个事件处理程序 setOnClickListener 并将位置保存在适配器内的一个变量中。这是正确的方法吗?
【问题讨论】:
标签: android listview checkbox android-inflate notifydatasetchanged