【发布时间】:2016-06-05 19:43:09
【问题描述】:
我有一个包含一些基本信息和心形符号的布局。当用户按下心脏符号时,心脏应该改变它的颜色(从灰色变为红色)然后我更新我的数据库(基本上将列表项的 id 插入到我的数据库中)。当我按下心形符号时,一切正常(心形颜色更改并插入数据库的新记录)但是当我向下滚动然后回到相同位置(我之前按下心形图标的位置)时,心形图标仍为灰色.
这是我的代码
public class MyCursorAdapter extends CursorAdapter {
private LayoutInflater mLayoutInflater;
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return mLayoutInflater.inflate(R.layout.list_info_layout, parent, false);
}
@Override
public void bindView(View view, Context context, final Cursor cursor) {
final ImageView heartImg = (ImageView) view.findViewById(R.id.heart);
int typeId = cursor.getInt(1);
if(typeId == 0){
heartImg.setImageResource(R.drawable.redHeart);
} else {
heartImg.setImageResource(R.drawable.greyHeart);
}
heartImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseUpdater.getInstance(myContext).update(id);
// notifyDataSetChanged();
}
});
}
}
如您所见,心脏颜色取决于我的数据库记录
【问题讨论】:
标签: android cursor android-adapter android-cursoradapter