2011-10-10 241 views
0

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

如何找到正确的视图?

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

<LinearLayout> 
    <TextView/> 
    <TextView/> 
</LinearLayout> 

这就是布局文件的轮廓,我传递给SimpleCursorAdapter构造函数。

回答

1

在您的适配器的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); 
} 
0

要扩大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); 
    } 
}