Android 回收视图';s NOTIFYDATASETCHANGE不生效

Android 回收视图';s NOTIFYDATASETCHANGE不生效,android,android-layout,android-recyclerview,Android,Android Layout,Android Recyclerview,我的代码如下 RecyclerViewAdapter violateRuleListAdapter; @Override public void onCreate() { ... myDataset=getFromDatabase(); violateRuleListAdapter = new ViolateRuleListAdapter(mContext, myDataset); mViolateRuleRecyclerView.setAdapter(vio

我的代码如下

 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()); 

非常感谢。是的,但可能会造成效率问题。