Android 设置列表项的背景色

Android 设置列表项的背景色,android,android-layout,Android,Android Layout,我有一个ListActivity,它在我的XML文件(android:id=“@android:id/android:list”)中将SimpleCursorAdapter设置为ListView。我在预填充的数据库中有五行。当活动开始时,我想将对应于带有_id3的数据库行的列表项视图的背景设置为蓝色。此项目可以出现在列表中的任何位置,因为用户可以添加、编辑和删除列表项目。(所以我不能依靠子节点编号索引。)如果该项目已被删除,那么我不想做任何事情 如何找到正确的视图 新增信息: 列表项是这样组织的

我有一个ListActivity,它在我的XML文件(android:id=“@android:id/android:list”)中将SimpleCursorAdapter设置为ListView。我在预填充的数据库中有五行。当活动开始时,我想将对应于带有_id3的数据库行的列表项视图的背景设置为蓝色。此项目可以出现在列表中的任何位置,因为用户可以添加、编辑和删除列表项目。(所以我不能依靠子节点编号索引。)如果该项目已被删除,那么我不想做任何事情

如何找到正确的视图

新增信息: 列表项是这样组织的(仅供参考,这是一个大纲,不是实际的XML代码):


这是我传递给SimpleCursorAdapter构造函数的布局文件的大纲。

在适配器的bindView()方法中,您可以确定行的_id并调用view.setBackgroundResource(R.drawable.my_blue_background); 看起来像这样

public void bindView(View view, Context ctx, Cursor cursor) {
    if(cursor.getInt(cursor.getColumnIndex("_id"))==3)
        view.setBackgroundResource(R.drawable.my_blue_background);
}

要扩展JoeLallouz的答案,实际上需要更改视图的父级(仅更改一次),此外,我们还需要了解列表项的布局

public void bindView(View view, Context ctx, Cursor cursor) {
    if(view.getId() == R.id.known_view && cursor.getInt(cursor.getColumnIndex("_id"))==3) {
        // Works if view's parent is the root of the list item's layout
        ((View)view.getParent()).setBackgroundResource(R.drawable.my_blue_background);
    }
}
public void bindView(View view, Context ctx, Cursor cursor) {
    if(view.getId() == R.id.known_view && cursor.getInt(cursor.getColumnIndex("_id"))==3) {
        // Works if view's parent is the root of the list item's layout
        ((View)view.getParent()).setBackgroundResource(R.drawable.my_blue_background);
    }
}