![](/img/trans.png)
[英]How to update a value stored in an Object on “Update” button click - Android?
[英]How to update only status on a Button click using in SQLite in android
我正在開發一個 SQLite 數據庫。 我創建了一個表,其架構是:名稱、圖像、已選擇。
消息的初始狀態為 0。
我正在使用數據庫上的setStatus()
方法更新按鈕單擊時的狀態。
但狀態不會改變。
我想單擊我的 Button 一次並將狀態設置為 1,然后再次單擊它以將狀態重新設置為 0。
setStatus()
函數如下所示:
public int setStatus(People people) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues values = new ContentValues();
people.setStatus(1);
values.put(STATUS, people.getStatus());
return sqLiteDatabase.update(TABLE_PEOPLE, values, ID + "=?",
new String[]{String.valueOf(people.getId())});
}
我的按鈕點擊事件
btnBuildNow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
peopleListSelected = new ArrayList<>();
for (People people : peopleList) {
if (people.getStatus()==1) {
db.setStatus(people);
peopleListSelected.add(people);
}
}
if (peopleListSelected.size() > 0) {
Intent intent = new Intent(BulidActivity.this, AlertList.class);
intent.putExtra("arrayList", (Serializable) peopleListSelected);
startActivity(intent);
}
}
});
您沒有傳遞要更新的行的 id(或者您想更新所有行?),未聲明 ISSELECTED 變量。 我的意思是這一行:
sqldb.update(TABLE_PEOPLE, cv, "id=" + ISSELECTED, null);
我會這樣寫(現在我無法測試)。 我會將選定的 id 傳遞給更新方法的第三個參數(即 where 子句,請參閱文檔: https : //developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html ):
public String setStatus(String selected) {
SQLiteDatabase sqldb = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("isselected", 1);
sqldb.update(TABLE_PEOPLE, cv, "id=" + selected, null);
sqldb.close();
return "Anything you want";
}
另一種可能的解決方案是直接編寫查詢:
public String setStatus(String selected) {
SQLiteDatabase sqldb = this.getWritableDatabase();
sqldb.execSQL("UPDATE TABLE_PEOPLE SET ISSELECTED=1 WHERE id=" + selected);
sqldb.close();
return "Anything you want";
}
編輯:對不起,我忘了告訴修改按鈕點擊事件,其中db.setStatus();
被稱為:使用db.setStatus(people.getId());
,或類似的東西(people.id,或代表 people 對象的 id 的東西,如果有的話。如果它沒有 id,你應該以某種方式從數據庫中獲取 id。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.