Android-ListView行背景颜色更改

Android-ListView行背景颜色更改,android,listview,background-color,Android,Listview,Background Color,我创建了一个具有两种背景颜色的列表视图,一行一行。然后我需要在单击项目时更改其背景颜色,并返回到项目本身的颜色。 我尝试了以下代码和视图。setBackgroundResource()在ItemClickListener中无法正常工作 if (selectedView != null) { if (selectedRowIndex % 2 == 0) { view.setBackgroundResource(R.color.list_secondcolor);

我创建了一个具有两种背景颜色的列表视图,一行一行。然后我需要在单击项目时更改其背景颜色,并返回到项目本身的颜色。 我尝试了以下代码和视图。setBackgroundResource()在ItemClickListener中无法正常工作

 if (selectedView != null) {
    if (selectedRowIndex % 2 == 0) {
        view.setBackgroundResource(R.color.list_secondcolor);
    } else {
     view.setBackgroundResource(R.color.list_firstcolor);
    }
    }selectedRowIndex = position;
    selectedView = view;view.setBackgroundColor(Color.WHITE);
还有其他可能的方法吗?
提前感谢。

您可以通过XML轻松完成这项工作。必须定义具有不同状态的可绘制图形。在您的情况下,由于列表项的背景色应该是交替的,因此必须定义两个可绘制项

在此绘图表中,您可以为列表项可能具有的不同状态定义颜色。正常、聚焦、按下、聚焦和按下。然后,您只需将此可绘制应用于列表项的background属性

    <?xml version="1.0" encoding="utf-8"?>
        <selector xmlns:android="http://schemas.android.com/apk/res/android">  
            <!-- default -->
            <item android:drawable="@color/normal_color" />
            <!-- focused -->
            <item android:state_focused="true" android:drawable="@color/focused_color" /> 
            <!-- pressed --> 
            <item android:state_pressed="true" android:drawable="@color/pressed_color" />  
            <!-- focused and pressed-->
            <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/focused_pressed_color" />
        </selector> 


视图首先调用
setBackgroundResource
,然后调用
setBackgroundColor
可能是因为这个原因,请尝试删除一个。是否获得了任何listitems颜色集?或者你得到的都是白色背景?不是。问题是在失去焦点后,它不会变成以前的颜色。