无法使用 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));