Множественный выбор списка не работает с более чем одним компонентом внутри элемента списка

У меня есть просмотр списка с поддержкой CHOICE_MODE_MULTIPLE_MODAL. Он работает отлично, при длительном нажатии элемент списка выбирается, когда в XML-элементе списка есть только один TextView, заключенный в RelativeLayout.

Но когда я добавляю флажок к элементу 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 ответ

Сделай это:

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;
        }
});

Прослушайте долгое нажатие (длительное нажатие здесь) и при длительном нажатии установите текущий флажок или снимите его. Это должно решить проблему.

Другие вопросы по тегам