SQLiteDatabase内のアイテムのブール値を設定するために使用するImageButtonがあります。SQLiteDatabaseの更新に対する応答
ImageButtonは、値が「1」の画像と値が「0」の画像を表示します。画像ボタンを押すと、データベースフィールドと画像が切り替わるはずです。
何らかの理由で、私がボタンを押すと、データベース上でupdateメソッドが呼び出されているにもかかわらず、currentCursor.getInt()によって返された値は変わりません。カーソルを更新/リフレッシュする必要がありますか?私は私のデータベースヘルパーで
private void updateFavouriteButton(){
int favourite = currentCursor.getInt(currentCursor.getColumnIndex(Object.favourite));
if (favourite == 1)
{
favouriteButton.setImageDrawable(getResources().getDrawable(R.drawable.favourite_selected));
favouriteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dbHelper.updateFavourite(selectedId, 0);
updateFavouriteButton();
}
});
}
else
{
favouriteButton.setImageDrawable(getResources().getDrawable(R.drawable.favourite));
favouriteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dbHelper.updateFavourite(selectedId, 1);
updateFavouriteButton();
}
});
}
}
::私は私の活動で
public void updateFavourite(long rowId, int favourite)
{
db.beginTransaction();
try {
ContentValues args = new ContentValues();
args.put("ZFAVOURITE", favourite);
int rowsAffected = db.update("ZOBJECT", args,"_id" + "=" + rowId, null);
if (rowsAffected > 0)
db.setTransactionSuccessful();
} catch (Exception e) {
Log.e("Error in transaction", e.toString());
} finally {
db.endTransaction();
}
}