Множественный выбор списка не работает с более чем одним компонентом внутри элемента списка
У меня есть просмотр списка с поддержкой 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;
}
});
Прослушайте долгое нажатие (длительное нажатие здесь) и при длительном нажатии установите текущий флажок или снимите его. Это должно решить проблему.