如何设置Listview交替行颜色和所选项目背景颜色

时间:2013-10-27 08:19:08

标签: android listview colors selector listitem

我有一个列表视图。我在适配器的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列表。

1 个答案:

答案 0 :(得分:3)

试试这个

<强> artists_list_backgroundcolor.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> 

<强> colors.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);
    }

供参考Link

希望这会对你有所帮助。