Сейчас я использую:
android:listSelector="@drawable/bg_list_item"
android:drawSelectorOnTop="true"
где bg_list_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<item android:state_selected="true">
<shape android:shape="rectangle">
<gradient android:startColor="#0000ff"/>
</shape>
</item>
<item android:state_focused="false"
android:state_pressed="false"
android:state_selected="false">
<shape android:shape="rectangle">
<gradient android:startColor="#ff0000"/>
</shape>
</item>
НО первый элемент не работает, и выбранный элемент иногда не выделяется при прокрутке (когда я нахожусь в верхней/нижней части моего списка) и никогда в listView.setSelection(index).
Я должен выделять текущий элемент программно?