我正在编写我的第一个Android应用程序。出于测试目的,我在主活动中显示了一个对象列表(类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>
第一个问题:现在我想用一个按钮一步检查所有CheckBox。什么是好风格?
第二个问题:我想知道检查了哪个CheckBox。所以我创建了一个eventhandler setOnClickListener并将位置保存在适配器中的变量中。这是正确的方法吗?
答案 0 :(得分:0)
第一个问题:现在我想用一个按钮一步检查所有CheckBox。什么是好风格?
因为看起来你的List包含boolean Checked for status,你应该点击checkAll按钮再次更新列表的所有对象并再次通知列表。
第二个问题:我想知道检查哪个CheckBox。所以我创建了一个eventhandler setOnClickListener并将位置保存在适配器中的变量中。这是正确的方法吗?
你应该从fragment / activity实现监听器,当用户点击任何复选框时,你会在片段/活动中获得点击事件,在那里,你更新列表项以查看状态。
所以,在你的片段/活动中:
new View.OnClickListener() {
@Override
public void onClick(View v) {
v.getTag()
}
}
在适配器中,使用项目ID /项目对象为每个项目设置标记,因此当用户点击任何项目时,您将会知道该项目对象/项目ID。