#android
#Android
Вопрос:
У меня есть ListView, встроенный в ListActivity. Я хочу, чтобы фон моих строк менялся при нажатии элемента.
Итак, я написал в своем ListActivity: this.getListView().setSelector(R.drawable.my_custom_selector);
Это my_custom_selector.xml :
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/selector" />
</selector>
drawable / selector — это селектор.9.png
Проблема в том, что ничего не происходит.
НО: когда я заменяю этот объект рисования цветом, весь экран приобретает этот цвет при нажатии строки.
Можете ли вы мне помочь?
Ответ №1:
Попробуйте установить свой селектор listview в файле .xml, например, в вашем listview
android:background="@drawable/your_selector"
вот небольшое, но хорошее руководство, проверьте его. Это также поможет вам решить вашу проблему.
Комментарии:
1. У меня нет listview в xml. Это ListActivity. (Кстати, вы правы, если бы у меня был listview в моем xml, я мог бы использовать listSelector в моем XML, и это сработало бы). Итак, кажется, единственный способ получить ListView — это this.getListView() в ListActivity
2. Вы можете переопределить методы onclick, onfocus, чтобы изменить цвета фона в представлении списка.
Ответ №2:
- Неверный код для setSelector элемента ListViewItem. Вы должны определить элемент ListViewItem в xml и установить для него параметр setSelector вместо параметра setSelector для ListView