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

use*_*599 5 android listview colors listitem selector

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

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

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

我在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>
Run Code Online (Sandbox Code Playgroud)

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

myList.setSelector(R.drawable.list_selector);
Run Code Online (Sandbox Code Playgroud)

但我没有选择列表项颜色.

任何人都可以请告诉我如何将备用行颜色和选定的列表项颜色设置为Android列表.

Ami*_*pta 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> 
Run Code Online (Sandbox Code Playgroud)

颜色.xml

<resources>

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

</resources>
Run Code Online (Sandbox Code Playgroud)

并在 getView() 中使用它

if (position % 2 == 0) {
        view.setBackgroundResource(R.drawable.artists_list_backgroundcolor);
    } else {
        view.setBackgroundResource(R.drawable.HERE_FOR_ALTERNATE);
    }
Run Code Online (Sandbox Code Playgroud)

供参考链接

希望对你有帮助。