listView with dual CheckBox Image
Android中的新功能 我在列表中有两个复选框,我希望一次检查一个,而另一个
我的main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/student_name"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:padding="20dp"/>
<CheckBox
android:id="@+id/present_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:duplicateParentState="false" />
<CheckBox
android:id="@+id/absent_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
list.xml
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/names_list"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout
答案 0 :(得分:1)
您可以使用RadioGroup代替Checkbox,然后将两个radioButton添加到radioGroup。
答案 1 :(得分:0)
答案 2 :(得分:0)
单选按钮专为此案例设计。但是,如果您确实要使用复选框,则当复选框中列表中的项目发生单击事件时,请将当前复选框的反向设置为其他复选框选中状态。因此,如果您收到类似此伪代码的事件:
onCheckChanged(CheckBox oneCheckbox, boolean isChecked){
otherCheckbox.setChecked(!isCchecked);
}
答案 3 :(得分:0)
当您点击 listView
中的一行时,您必须调用 notifyDataSetChanged()
,以便更新所有视图。
listView.setOnItemClickListener((parent, view, position, id) -> {
// do something
notifyDataSetChanged()
});