我在 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;
所以如果用户在snackbar的可见期间没有点击撤消按钮,那么我需要从数据库中永久删除数据。
有什么解决方案吗?