无法使用android:onClick =设置单选CheckBox

时间:2018-02-24 05:45:10

标签: android listview android-checkbox

我正在尝试使用以下实现单击一次设置一个复选框:

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]

CheckBox列表。

enter image description here

1 个答案:

答案 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));