Я пытаюсь воссоздать то, что Google сделал с ListView в приложении Gmail. В частности, я хотел бы, чтобы каждый элемент списка включал CheckBox и два TextViews (один поверх другого). Мне нужны слушатели, когда CheckBox отмечен (или щелкнут), и когда в другом месте элемента списка будет нажата кнопка. Наконец, я бы хотел, чтобы ActionBar отражал, что элементы выбраны и предоставляют такие параметры, как "Выбрать все", "Выбрать" Нет "и т.д. (См. этот скриншот),
До сих пор здесь был макет, который я придумал.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<CheckBox android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" />
<LinearLayout android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="6dp"
android:focusable="true"
android:clickable="true" >
<TextView android:id="@+id/titleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp" />
<TextView android:id="@+id/dateTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
Это отображает все правильно, но мне нужно указать, как настроить слушателей для двух представлений (@+ id/checkBox и @+ id/linearLayout1)., Я просмотрел List16 API demo, но они используют макет simple_list_item_activated_1, и я не уверен, что XML для этого выглядит, Как показывает их код, я создал класс ModeCallback, который реализует ListView.MultiChoiceModeListener, и я установил режим выбора ListView на CHOICE_MODE_MULTIPLE_MODAL, но я не знаю, как получить CheckBox в моем макете для работы с этим.
Кто-нибудь успешно скопировал поведение ListView в приложении Gmail? Я искал совсем немного и ничего не мог придумать (несмотря на то, что некоторые другие задавали похожие вопросы, как этот - большинство ответов просто указывают на эту же демонстрационную версию API).
Кроме того, для контекста я загружаю данные из базы данных SQLite в список, и я создал свой собственный адаптер курсора (который отлично работает). У меня есть ощущение, что мне нужно настроить слушателей в этом классе в методах newView() и bindView(), но все, что я пробовал, не сработало.
Любые идеи?