选择并突出显示自定义列表视图项

时间:2012-06-05 10:09:36

标签: java android listview

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

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>

1 个答案:

答案 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);