Привет все,
У меня есть 2 вопроса относительно ListView в Android:
Как я могу получить цвет сфокусированной строки listview? Я пытался использовать ListView.getSelector () метод, который согласно его документации должен дать мне, что я ищу, но он дает мне объект Drawable, который я не знаю, как получить цвет от (если это возможно...).
Как я могу выбрать цвет сфокусированной строки listview? Здесь я пытался использовать setSelector () метод на listview, передавая его объект ColorDrawable, но результат выполнения его состоит в том, что целый фон представления списка красится в том цвете... и это не то, что я хотел, конечно...
Спасибо!
Высеватель списков Drawlable представляет собой StateListdrawable
- он содержит ссылку на несколько рисунок для каждого состояния, который можно найти, например, выбранный, сфокусированный, нажатый, отключенный ...
Хотя вы можете получить драгоценно используемый Get GetSelector ()
, я не верю, что вы можете получить определенный Drawlable
из StateListdrawable
, и не кажется, Возможно программно извлечь цвет непосредственно из ColordRawable
в любом случае.
Что касается установки цвета, вам нужен StateListdrawable
, как описано выше. Вы можете установить это в вашем списке с помощью атрибута Android: Listselector
атрибут, определяющий Drawbable в XML, как это:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:state_focused="true"
android:drawable="@drawable/item_disabled" />
<item android:state_pressed="true"
android:drawable="@drawable/item_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/item_focused" />
</selector>