我正在尝试在数据修改后更新CursorAdapter显示的视图。 每行包含一个图像。当我触摸此图像时,数据库会更新,我想修改有关此数据更新的图像。
除了光标上的重新查询,我没有找到解决方案...我的数据库非常大,重新查询太重了。你有更好的解决方案吗?
答案 0 :(得分:0)
是的,有时候requery不是最好的解决方案。我通常做的是在数据库适配器中创建帮助方法来检索代码片段。这是我的一个适配器的摘录:
@Override
public void bindView(View view, final Context context, Cursor cursor) {
String name = cursor.getString(cursor.getColumnIndex("name"));
long id = cursor.getLong(cursor.getColumnIndex("_id"));
((TextView)view.findViewById(R.id.name)).setText(name);
Button btnFavorite = (Button) view.findViewById(R.id.item_add_favorite);
btnFavorite.setTag(id);
btnFavorite.setOnClickListener(mFavoriteCliked);
}
我所做的基本上是为图像设置一个点击监听器......并确保它正确地改变其状态:
private OnClickListener mFavoriteCliked = new OnClickListener() {
@Override
public void onClick(View v) {
// change the image of the v object
}
};