我的代码如下
RecyclerViewAdapter violateRuleListAdapter;
@Override
public void onCreate() {
...
myDataset=getFromDatabase();
violateRuleListAdapter = new ViolateRuleListAdapter(mContext, myDataset);
mViolateRuleRecyclerView.setAdapter(violateRuleListAdapter);
}
@Override
public void onResume() {
myDataset=getFromDatabase();
violateRuleListAdapter.notifyDataSetChanged();
}
应用程序从数据库中获取数据集,而数据库中的数据集在其他活动中发生更改。但是当我返回时,发现适配器没有更改。我不能像使用BaseAdapter那样使用它吗?
最佳答案
我认为getFromDatabase();
返回新对象,因此传递给recyclerview
的原始引用将丢失并且不会更改。您需要做的是更改myDataset
的内容,而不是它的引用。例如,如果myDataset
是一个列表,请使用以下代码:
myDataset.clear();
myDataset.addAll(getFromDatabase());
关于android - Recyclerview的notifyDataSetChanged无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27392863/