1
我試圖更新CursorAdapter在其數據修改後顯示的視圖。 每行包含一個圖像。當我觸摸此圖像時,數據庫將更新,並且我想修改關於此數據更新的圖像。光標更新後的BindView
除了光標上的查詢我沒有找到解決方案...我的數據庫真的很大,查詢太重了。你有更好的解決方案嗎?
我試圖更新CursorAdapter在其數據修改後顯示的視圖。 每行包含一個圖像。當我觸摸此圖像時,數據庫將更新,並且我想修改關於此數據更新的圖像。光標更新後的BindView
除了光標上的查詢我沒有找到解決方案...我的數據庫真的很大,查詢太重了。你有更好的解決方案嗎?
是的,有時候詢問並不是最好的解決方案。我通常做的是在數據庫適配器中創建幫助方法來檢索代碼片段。這是我的一個適配器的摘錄:
@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
}
};
數據庫更新時,光標不會更改。每行的圖像將由bindView()中的舊遊標重繪。數據庫更改,但視圖沒有。如果光標沒有改變,你如何改變視圖?在光標上請求將解決問題,但效率不高。 – Emerald214 2011-06-28 18:14:42