私は Android で Snackbar を使用しており、ユーザーがアクションを元に戻すことができるようにアクションを実装しました (アクションはリストビュー内のすべてのアイテムをクリアしています)。リストビューへのアイテムの削除と追加は既に行われており、正常に動作しています。
私の問題は、アイテムがsqliteデータベースに保存されていることです。テーブルからアイテムを削除するにはどうすればよいですか? (データベースからデータを完全に削除できるように、ユーザーが元に戻すボタンをクリックしていないことをどのように知ることができますか)。
これはOnOptionsItemSelected()内のコードです
case R.id.action_clear:
final List<Word> temp = new ArrayList<Word>(data);
data.clear();
adapter.notifyDataSetChanged();
View view = findViewById(R.id.layoutFavWords);
Snackbar.make(view,"Deleted Saved Selection.", Snackbar.LENGTH_LONG).
setAction("Undo", new OnClickListener() {
@Override
public void onClick(View v) {
for(Word word:temp)
data.add(word);
adapter.notifyDataSetChanged();
}
}).show();
break;
そのため、ユーザーがスナックバーの表示期間中に元に戻すボタンをクリックしなかった場合、データベースからデータを完全に削除する必要があります。
これに対する解決策はありますか?