Не удалось установить элемент списка, активированный в главном / подробном фрагменте 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>
и назначьте его в качестве фона макета строки.