在列表视图中未选中Android onClick复选框

时间:2015-06-11 09:40:23

标签: android listview checkbox

我正在使用 CheckBox 处理自定义ListView 。当我们点击 ListView 的项目时,我尝试检查单选CheckBox。我该怎么办?

我的XML code

<TextView
    android:id="@+id/addressTXT"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginTop="10dp"
    android:text="Price" />

<CheckBox
    android:id="@+id/addressCheckBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@+id/addressTXT"
    android:layout_marginRight="40dp"
    android:focusable="false"
    android:focusableInTouchMode="false" />

并点击BaseAdapter中的项目。

         itemView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });

我该怎么做?

3 个答案:

答案 0 :(得分:1)

啊,我遇到同样的问题:) 我在下面解决了这个问题。

    itemView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            for (int i = 0; i < parent.getChildCount(); i++) {

                View view = parent.getChildAt(i);
                CheckBox checkBox = (CheckBox) view
                        .findViewById(R.id.CheckBox);
                checkBox.setChecked(false);

            }

            CheckBox checkBox = (CheckBox) v
                    .findViewById(R.id.CheckBox);
            checkBox.setChecked(true);

        }
    });

答案 1 :(得分:0)

你可以这样做:

    itemView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        CheckBox box = v.findViewById(R.id.addressCheckBox); //get your checkbox
        box.setChecked(!box.isChecked()); //toggle checkbox-state
    }
});

答案 2 :(得分:0)

首先,您必须为checkBox提供onClickListener,而不是整个视图。 第二,在XML for adapter中你必须把它放到checkBox

android:focusable="true"
android:clickable="true"

如果你需要单独的clickListeners复选框和listView行,你需要这个XML格式的参数用于checkBox

android:focusable="false"
android:clickable="true"