0

我想定位自定义列表视图项

listView.setSelection(itemIndex);

所选项目定位在列表视图可见部分的顶部。但没有突出显示。如何在不重新创建列表视图的情况下设置列表视图项目的默认突出显示(然后禁用突出显示并选择另一个)

谢谢!

ps 我知道它之前被问过很多次,但我不明白它是如何工作的

更新 不适用于我的 android 2.2(adt 模拟器和带有 android 2.2 froyo 的智能手机)

可绘制/列表选择器.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>
4

1 回答 1

3

您将需要一个选择器将其添加到 xml 中的布局中

android:clickable="true"
android:background="@drawable/selector"

selecor.xmldrawable像这样创建一个文件夹

<?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);
于 2012-06-05T10:14:16.223 回答