光标更新后的BindView

时间:2011-04-07 13:07:36

标签: android

我正在尝试在数据修改后更新CursorAdapter显示的视图。 每行包含一个图像。当我触摸此图像时,数据库会更新,我想修改有关此数据更新的图像。

除了光标上的重新查询,我没有找到解决方案...我的数据库非常大,重新查询太重了。你有更好的解决方案吗?

1 个答案:

答案 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
    }
};