无法使用 android:onClick= 设置单选 CheckBox
Unable to set single selection CheckBox using android:onClick=
我正在尝试使用以下实现一次设置一个复选框:
checkbox image
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]
复选框列表。
解决方案可以是多个。如果您使用的是自定义适配器,请执行以下操作。
在列表项 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));
我正在尝试使用以下实现一次设置一个复选框:
checkbox image
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]
复选框列表。
解决方案可以是多个。如果您使用的是自定义适配器,请执行以下操作。
在列表项 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));