HighLight ListView项目以编程方式

时间:2012-10-05 17:03:20

标签: android android-listview selection

我想选择一行ListView。我已经尝试了一切,但似乎没有任何工作。

  • 我在onCreate方法
  • 我填充了ListView
  • 我让setSelection通过position
  • 我设置了setSelected(true)

方法setSelection(index)有效,但我无法选择该项目。怎么做?我也试过使用requestFocus(),但它没有用。

2 个答案:

答案 0 :(得分:0)

您的ListView需要一个selectorStateListDrawablestate_selected可绘制。否则,选中时项目不会改变颜色。

答案 1 :(得分:0)

您需要为此创建选择器项目,您必须使用setSelector()调用将此项目设置为listview。

创建一个新的可绘制文件,并使用类似的代码,如下所示。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="false"><shape>
        <gradient android:angle="270" android:endColor="#BB00D5FF" android:startColor="#BB00D5FF" />

        <corners android:bottomLeftRadius="9dp" android:topRightRadius="9dp" />
    </shape></item>
    <item android:state_pressed="true"><shape>
        <gradient android:angle="270" android:endColor="#BB0987CD" android:startColor="#BB0987CD" />

        <corners android:bottomLeftRadius="9dp" android:topRightRadius="9dp" />
    </shape></item>

</selector>

使用setSelector(R.drawable.bg)将上述drawable设置为listview

相关问题