Как заголовок, я пытаюсь обновить определенные данные, хранящиеся в SQLiteDatabase, но он обновляет каждый элемент в нем.
Я пытаюсь сделать приложение для создания заметок.Пока он сохраняет то, что я хочу сохранить правильно, но когда я пытаюсь редактировать заметку, возникает проблема.
Она изменяет все сохраненные заметки, когда я нажимаю кнопку редактирования, включая заметку, которую я хотел отредактировать.
Примечание определено как объект MemoItem, т.е. MemoItem memoItem = new MemoItem (), и имеет следующие переменные: String saveTime, memo и category.
Когда я нажимаю на заметку, я хочу редактироватьон успешно принимает сохраненные значения, но да.
И на всякий случай, если это необходимо, вот что объявлено в моем классе SQLiteOpenHelper:
public class MemoListDbHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "MemoListDB.db";
public static class MemoEntry implements BaseColumns {
public static final String TABLE_NAME = "entry";
public static final String COLUMN_CATEGORY = "category";
public static final String COLUMN_SAVED_TIME = "savedTime";
public static final String COLUMN_MEMO = "memo";
}
private static final String SQL_CREATE_ENTRIES = "CREATE TABLE " + MemoEntry.TABLE_NAME + " (" +
MemoEntry._ID + " INTEGER PRIMARY KEY," +
MemoEntry.COLUMN_CATEGORY + " TEXT," +
MemoEntry.COLUMN_SAVED_TIME + " TEXT," +
MemoEntry.COLUMN_MEMO + " TEXT )";
}
Я создал метод updateNote ()внутри вспомогательного класса:
public void updateNote(MemoItem memoItem) {
if (memoItem == null) {
return;
}
SQLiteDatabase db = getReadableDatabase();
ContentValues values = new ContentValues();
values.put(MemoEntry.COLUMN_MEMO, memoItem.memo);
db.update(MemoEntry.TABLE_NAME, values, "_id=" + MemoEntry._ID, null);
}
И кнопка редактирования находится внутри фрагмента с именем MemoFragment.
В переопределенном методе onClick есть другой метод с именем updateMemoOnClick (), который я сделал.
Когда кнопка нажата, она создаст новый объект MemoItem с категорией, памяткой и сохраненным временем, который пользователь поместил и передал объект методу updateNote ().выше:
private void updateMemoOnClick() {
MemoItem memoItem = new MemoItem();
memoItem.memo = memoEditText.getText().toString();
memoItem.category = selectedBodyPartTextView.getText().toString();
memoItem.startedTime = startTimeTextView.getText().toString();
memoListDbHelper.updateMemo(memoItem);
}
Почему мой SQLite update () обновляет все элементы базы данных?
Может кто-нибудь помочь?Я был на этой проблеме в течение половины дня.Заранее спасибо!