Множественный выбор в пользовательском ListView с помощью CAB

После нескольких дней чтения и проб и ошибок я сдаюсь и прошу помощи.

Я использую ActionBarSherlock.

Чего я хочу добиться: ListView с настраиваемым макетом для каждой строки, где пользователь может выбрать несколько элементов списка. Выбранный элемент списка должен иметь другой цвет фона. Когда выбран хотя бы один элемент, должна отображаться контекстная панель действий (CAB). Это должно выглядеть более или менее похоже на множественный выбор писем в приложении GMail. Единственная разница заключается в том, что в приложении Gmail выбор делается путем нажатия флажка строки, тогда как я не хочу иметь флажок, но строка должна быть выбрана независимо от того, где пользователь щелкает. Multiple selection in GMail app

Что пробовал: Следуя этому руководству, используя макет строки Checkable с некоторой логикой для изменения цвета фона при переключении состояния проверки, я получил все, что работает, за исключением того, что я не мог зарегистрировать прослушиватель кликов, такой как OnItemClickListener, в ListView для отображения такси. Не помогло ни предоставление прослушивателя кликов для каждого представления строки, поскольку это не позволяло изменить цвет фона выбранных элементов. Я также попытался добавить MultiChoiceModeListener в ListView

    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
    listView.setMultiChoiceModeListener(new MultiChoiceModeListener() { //.. });

с тем же результатом, без изменения цвета фона.

Что я ищу: Подсказка, учебник или пример кода, как это сделать. Если вам нужны фрагменты кода, чтобы помочь, дайте мне знать.

29
задан Konsumierer 21 May 2012 в 08:53
поделиться