多选列表视图不与列表项中的多个组件一起使用

时间:2016-12-18 14:47:39

标签: android xml listview multi-select

我有一个启用了CHOICE_MODE_MULTIPLE_MODAL的ListView。它工作得非常好,长按时,如果List项XML中的RelativeLayout中只包含一个TextView,则会选择列表项。

但是当我在项目XML中添加一个复选框时,我无法通过长按来选择列表项。 任何帮助将不胜感激。

工作清单项目XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_item_selector">

    <TextView
        android:text="TextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/todoNoteTitle"
        android:layout_alignParentTop="true"
        android:textSize="18sp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:paddingTop="20dp"
        android:paddingBottom="20dp"
        android:paddingLeft="10dp" />
</RelativeLayout>

非工作清单项目XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_item_selector">

    <TextView
        android:text="TextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/todoNoteTitle"
        android:layout_alignParentTop="true"
        android:textSize="18sp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:paddingTop="20dp"
        android:paddingBottom="20dp"
        android:paddingLeft="10dp" />
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/checkboxTodo"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:textSize="18sp"
        android:paddingTop="20dp"
        android:paddingBottom="20dp"
        android:paddingRight="20dp"/>

</RelativeLayout>

任何线索?

1 个答案:

答案 0 :(得分:0)

这样做:

your_text_view.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            //Check or uncheck the CheckBox.
            if (!your_check_box.isCheck())
               your_check_box.setChecked(true);
            else your_check_box.setChecked(false);

            return false;
        }
});

长按(长按此处)并按长按事件设置当前复选框或取消选中它。这应该可以解决问题。