Recyclerview的notifyDataSetChanged不会生效

时间:2014-12-10 03:27:49

标签: android android-layout android-recyclerview

我的代码如下所示

 RecyclerViewAdapter violateRuleListAdapter;
 @Override
 public void onCreate() {
 ...
   myDataset=getFromDatabase();     
   violateRuleListAdapter = new ViolateRuleListAdapter(mContext, myDataset);
   mViolateRuleRecyclerView.setAdapter(violateRuleListAdapter);
 }
 @Override
 public void onResume() {
    myDataset=getFromDatabase();   
    violateRuleListAdapter.notifyDataSetChanged();
 }

应用程序从db获取其他活动中的数据集。但是当我回来时,我发现适配器没有改变。我不能像BaseAdapter一样使用它吗?

1 个答案:

答案 0 :(得分:4)

我认为getFromDatabase();会返回新对象,因此传入recyclerview的原始引用会丢失并且不会更改。您需要做的是更改myDataset的内容而不是其引用,例如,如果myDataset是代码下面的列表,则使用

 myDataset.clear();
 myDataset.addAll(getFromDatabase());