Не удалось установить элемент списка, активированный в главном / подробном фрагменте ICS 4.0

Я пытаюсь разработать приложение с макетом Master/ Detail (Fragment), но сталкиваюсь со странной проблемой, которая заключается в том, что когда я добавил свой собственный адаптер просмотра списка, перестала работать активация элементов списка при щелчке / выборе.

Код, предоставленный по умолчанию с фиктивными данными, был

  setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(
      getActivity(), android.R.layout.simple_list_item_activated_1,
      android.R.id.text1, DummyContent.ITEMS));

код, который я заменил,

    CMyListAdapter adapter = new CMyListAdapter(getActivity(),
            CMyContent.getSampleMyContentList());
    setListAdapter(adapter);

Теперь, когда я нажимаю на элемент списка, он выделяется и не остается постоянным.

1 ответ

Решение

Если вы используете пользовательский макет, убедитесь, что вы правильно настроили фон для рисования:

android:background="?android:attr/activatedBackgroundIndicator"

Если вы хотите настроить стиль индикатора, вы должны определить свой собственный StateListDrawable XML:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
   android:exitFadeDuration="@android:integer/config_mediumAnimTime">

   <item android:drawable="@color/red" android:state_pressed="true"/>
   <item android:drawable="@color/blue" android:state_selected="true"/>
   <item android:drawable="@color/green" android:state_activated="true"/>

</selector>

и назначьте его в качестве фона макета строки.

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