如何设置ListView的交替行颜色和选定项背景颜色

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 列表?


这个链接可能会帮助你改变自定义ListView行的颜色。 - Aditi K
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> 

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);
    }

供参考链接

希望这可以对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接