我想定位自定义列表视图项目
listView.setSelection(itemIndex);
所选项目位于listview可见部分的顶部。但没有突出显示。 如何在没有listview重新创建的情况下设置listview项的默认突出显示(然后禁用突出显示并选择另一个)
谢谢!
P.S。我知道它之前被问了很多次但是我不明白它是如何工作的
更新 不适用于我的Android 2.2(adt模拟器和带有android 2.2 froyo的智能手机)
抽拉/ listselector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/red" android:state_focused="true"/>
<item android:drawable="@color/yellow" android:state_selected="true"/>
<item android:drawable="@color/red" android:state_pressed="true"/>
</selector>
值/ colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000000</color>
<color name="white">#ffffff</color>
<color name="yellow">#ffff00</color>
<color name="red">#ff0000</color>
</resources>
布局/ list1.xml
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="@drawable/listselector"
android:clickable="true" >
</ListView>
答案 0 :(得分:3)
你需要一个选择器将它添加到xml
中的布局中android:clickable="true"
android:background="@drawable/selector"
并在selecor.xml
文件夹中创建drawable
,如下所示
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@color/red"/>
</selector>
最后在values
colors.xml
文件夹中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000000</color>
<color name="white">#ffffff</color>
<color name="red">#ff0000</color>
</resources>
并致电
listView.requestFocusFromTouch();
前
listView.setSelection(itemIndex);