【问题标题】:Recyclerview's notifyDataSetChanged does not take effectRecyclerview的notifyDataSetChanged没有生效
【发布时间】:2014-12-10 03:27:49
【问题描述】:

我的代码如下所示

 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 一样使用它吗?

【问题讨论】:

    标签: android android-layout android-recyclerview


    【解决方案1】:

    我认为 getFromDatabase(); 返回新对象,因此传递给 recyclerview 的原始引用丢失并且不会改变。您需要做的是更改 myDataset 的内容而不是它的引用,例如,如果 myDataset 是一个列表,请使用以下代码:

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

    【讨论】:

    • 谢谢!没错。但可能会导致效率问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多