在我的应用程序中,我有两个活动,在第一个活动中,我具有Recycleview,在第二个活动中,我正在更新数据库,然后调用finish返回到我的列表视图,所以我的问题是我应该在哪种方法中放入Adapter.notifyDataSetChanged ()获取更新的Recycleview。
一些重要代码:
在第二个活动中调用Finish():
工具栏事件句柄的导航图标下面的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle arrow click here
if (item.getItemId() == android.R.id.home) {
finish(); // close this activity and return to preview activity (if there is any)
}
return super.onOptionsItemSelected(item);
}
答案 0 :(得分:1)
@Override
public void onRestart(){
adapter.notifyDataSetChanged();
super.onRestart();
}
编辑:
在您的第二个活动中,如果数据库已更新,则向如下所示的sharedpreference添加一个标记
@Override
public void onDestroy(){
sharedpreference.edit().putBoolean("isModified",true).apply();
//Or flase if not modified
super.onDestroy();
}
首次活动
@Override
public void onRestart(){
super.onRestart();
if(sharedpreference.getBoolean("isModified",false)){
adapter.notifyDataSetChanged();
sharedpreference.edit().putBoolean("isModified",flase).apply();
}
}
答案 1 :(得分:0)
如前一个活动尚未完成,它将调用上一个活动的onResume(),如Android开发者文档上的“活动生命周期”图所示。 Source。
答案 2 :(得分:0)
活动打开后,将调用和OnResume()
。
这在android文档中有解释
https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
您应该像这样更新RecycleView
@Override
public void onResume(){
super.onResume();
myAdapter.notifyDataSetChanged();
}