私はRecyclerViewを持っています。削除ボタンをクリックすると、RecyclerViewからアイテムが削除されますが、アプリケーションを再起動するとアイテムが戻ってきます。ここでは関数は、私のデータベースクラスである:ここではSQLiteデータベースのアイテムがRecyclerView内で削除されない
public boolean deleteList(long rowId) {
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}
は、削除ボタンで自分のアダプタクラスです:
@Override
public void onBindViewHolder(RecyclerViewViewHolder viewHolder, final int position) {
viewHolder.name.setText(list.get(position).name);
viewHolder.date.setText(list.get(position).date);
viewHolder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
RecyclerViewListSchema item = list.get(position);
SQLiteDatabaseAdapter database = new SQLiteDatabaseAdapter(view.getContext());
database.open();
boolean deleteList = database.deleteList((long) position);
list.remove(position);
notifyItemRemoved(position);
database.close();
}
});
}
アップデート: 次のように私は私のdeleteList
関数内でコミット機能を追加しました:
public boolean deleteList(long rowId) {
db.beginTransaction();
try {
db.setTransactionSuccessful();
}
catch (Exception e) {
Log.v("Commit", "Error: + " + e);
}
finally {
db.endTransaction();
}
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}
Androidモニターでは何も取得できません。 この問題を解決するにはどうすればよいですか?
は、データベースから設定されたリストですか?あなたはコミットを逃していますか? –
@dumb_terminalはい。リストはデータベースから取り込まれます。 –
それから間違いなくそのアイテムはdbから削除されていません。ここには2つのものがあります。 1.削除ロジックが成功しません。 2.削除は成功しますが、変更はdbにコミットされません。 –