5

我有一个列表视图。我在适配器的 getView() 方法中分配了如下所示的备用行颜色:

if(position % 2 ==1)
{
convertView.setBackgroundColor(Color.rgb(231, 249, 255));
}
else
{
convertView.setBackgroundColor(Color.rgb(195, 240, 255)); 
}

上面的代码工作正常。现在我想更改所选列表项的颜色。为此,我遵循了以下程序:

我在 listSelector xml 上创建了如下:

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

  <!-- Selected --> 
  <item 
    android:state_focused="true" 
    android:state_selected="false" 
    android:drawable="@drawable/focused"/> 

  <!-- Pressed -->
  <item 
    android:state_selected="true" 
    android:state_focused="false"
    android:drawable="@drawable/selected" /> 

</selector>

我已将上述选择器分配到我的列表中,如下所示:

myList.setSelector(R.drawable.list_selector);

但我没有得到选定的列表项颜色。

谁能告诉我如何将备用行颜色和选定的列表项颜色设置为 android 列表。

4

1 回答 1

3

像这样试试

艺术家列表背景色.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item 
 android:state_selected="false"
    android:state_pressed="false" 
    android:drawable="@color/normal" />
<item android:state_pressed="true" 
    android:drawable="@color/itemselected" />
<item android:state_selected="true"
 android:state_pressed="false" 
    android:drawable="@color/itemselected" />
</selector> 

颜色.xml

<resources>

    <color name="normal">#ffffff</color>
    <color name="itemselected">#EDEDED</color>

</resources>

并在 getView() 中使用它

if (position % 2 == 0) {
        view.setBackgroundResource(R.drawable.artists_list_backgroundcolor);
    } else {
        view.setBackgroundResource(R.drawable.HERE_FOR_ALTERNATE);
    }

供参考链接

希望这会帮助你。

于 2013-10-27T08:36:07.823 回答