我有一个ListActivity,它将SimpleCursorAdapter设置为我的XML文件中的ListView(android:id =“@ android:id / android:list”)。我在预先填充的数据库中有五行。当活动开始时,我想设置与数据库行对应的列表项视图的背景,其中_id 3为蓝色。此项目可以出现在列表中的任何位置,因为用户可以添加,编辑和删除列表项目。 (所以我不能依赖于子节点编号的索引。)如果项目被删除,那么我不想做任何事情。
如何找到正确的视图?
添加信息: 列表项的组织方式如此(fyi,这是一个大纲,而不是实际的XML代码):
<LinearLayout>
<TextView/>
<TextView/>
</LinearLayout>
这是我传递给SimpleCursorAdapter构造函数的布局文件的大纲。
答案 0 :(得分: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);
}
答案 1 :(得分: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);
}
}