如何在onResume()上更新RecyclerView中的值?

时间:2017-06-17 06:13:01

标签: android

我正在设计一个新闻应用程序,其中我在recyclerView中显示新闻文章。现在,在点击新闻文章时,我想更改其背景颜色,以表明新闻项目已被阅读。

为此,首先我在读取新闻时更新Firebase数据库中与新闻文章相对应的状态字段。然后我在我的Recycler Adapter中检查该字段的值,并在状态发生变化时更改背景。

但是,由于recyclerView的适配器是在片段的onCreateView中定义的,因此当我按下后退按钮时不会立即进行更改。而是在重新打开应用程序时发生更改,因为onCreateView被调用了那个时间。那么如何在片段的onResume中更新适配器并相应地更新recyclerView?

3 个答案:

答案 0 :(得分:3)

从oncreateview();

初始化并设置适配器

然后你只需要更新适配器数据并调用adapter.notifyDataSetChanged();形成你的onResume();

@Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
  YourAdapter adapter = new YourAdapter(listofdata);
  yourRecycleView.setAdapter(adapter);
 }

@Override
public void onResume() {
super.onResume();
listofdata.clear();  //Reset before update adapter to avoid duplication of list
//update listofdata
adapter.notifyDataSetChanged();
}

答案 1 :(得分:1)

覆盖onResume方法并致电notifyDataSetChanged

@Override
public void onResume() {
    super.onResume();
    adapter.notifyDataSetChanged();
}

答案 2 :(得分:0)

  

添加您的代码以更新数据并通知适配器

 @Override
public void onResume() {
super.onResume();
/// code to update data then notify Adapter
adapter.notifyDataSetChanged();
}