我正在尝试使用行 ID 作为我的 where 语句来更新 SQLite 表。我从列表视图中显示的行中获取行 _id 并使用以下语句传递给另一个活动:
Cursor cursor = (Cursor) nurseTableAdapter.getItem((int)id);
showAssignments.putExtra("Nurse", cursor.getInt(cursor.getColumnIndex("_id")));
接收活动接收参数:
nurse = extras.getString("Nurse");
并将其作为参数传递给我的 DbCommunicator 类:
updateAssignments.updateNurseAssignments(listItemsArray, nurse);
我的 DbCommunicator 类用它来做到这一点:
public void updateNurseAssignments(String[] choices, String nurseId) {
// set parameter variables
//int nurseIdToInt = Integer.parseInt(nurseId);
//String strFilter = "_id=" + nurseIdToInt;
//String where = "_id=?";
String[] whereArgs = {String.valueOf(nurseId)};
Log.i(TAG, "value of whereArgs is " + whereArgs[0]);
// set content values
ContentValues cvUpdate = new ContentValues();
cvUpdate.put(KEY_FIRST_ASSIGNMENT, choices[0]);
cvUpdate.put(KEY_SECOND_ASSIGNMENT, choices[1]);
cvUpdate.put(KEY_THIRD_ASSIGNMENT, choices[2]);
cvUpdate.put(KEY_FOURTH_ASSIGNMENT, choices[3]);
cvUpdate.put(KEY_FIFTH_ASSIGNMENT, choices[4]);
cvUpdate.put(KEY_SIXTH_ASSIGNMENT, choices[5]);
// update database
sqldb.update(NURSE_TABLE, cvUpdate, KEY_NURSE_ROWID + "= ?", whereArgs);
}
我没有收到任何错误,但表格没有更新。我只在 Stack Overflow 中找到了一个类似的示例,并尝试在此处合并其中的一些示例,但仍然存在问题。建议表示赞赏。