我的代码如下

 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/

10-10 17:08