【发布时间】:2015-08-10 17:20:34
【问题描述】:
我的主要活动带有一个片段,它有一个 Recyclerview 检索从数据库填充的所有数据。在这个片段中,我有一个按钮,它调用另一个活动来将一个对象插入数据库。
问题是当 Activity 结束并返回到 Main Activity 时,Recyclerview 不显示我刚刚创建的新项目。我试过这段代码:
@Override
public void onResume() {
super.onResume();
adapterItem.addItem(MyApplication.getWritableDatabase().getAllItems());
listProjectsView.scrollToPosition(0);
}
getAllItems 函数从 sqlite 中检索所有数据。
在我的 Recyclerview 的 adapterItem 上,我得到了这个:
public void addItem(ArrayList<Item> listItems) {
this.listItems = listItems;
notifyItemInserted(0);
}
它工作“很好”。主要问题是当我在移动设备中切换到另一个正在运行的应用程序并返回到我开发的应用程序时,onResume 方法会打开并再次显示我的最后一个插入,填充两次这个项目(依此类推,如果我再做一次)。
谢谢
【问题讨论】:
-
使用 onRestart insted of onResume
-
使用必须带
HashSet,这将排除重复元素
标签: android sqlite android-fragments android-recyclerview