我正在尝试使用以下实现单击一次设置一个复选框:
public void itemClicked(View v) {
//code to check if this checkbox is checked!
for(int i=0 ; i < list.getAdapter().getCount(); i++)
{
int position = list.getPositionForView(v);
if(selectedIndex == position){
list.setItemChecked(position, true);
}
else{
list.setItemChecked(position, false);
}
}
}
...但是会检查所有复选框,并且单个选择不起作用。
任何建议都表示赞赏。
完整来源:
https://pastebin.com/sDXA00PZ [复选框] [2]
CheckBox列表。
答案 0 :(得分:0)
解决方案可以是多个。如果您使用自定义适配器,请执行以下操作。
在列表项xml中创建CheckBox
android:clickable="false"
。并以编程方式设置CheckBox
状态。
<CheckBox
android:layout_width="wrap_content"
android:clickable="false"
android:layout_height="wrap_content"
/>
对所选位置使用变量int
。
private int selected ;
public void setSelected(int selected){
this.selected=selected;
}
public void getView(int position, View convertView, ViewGroup parent) {
// Validate the selected position and set checked state here .
}
另一个简单的解决方案可以是。
listView = (ListView)findViewById(R.id.listView);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, arr));