我有一个列表视图。我在适配器的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列表。
答案 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
希望这会对你有所帮助。