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

问题描述 投票:2回答:3

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

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

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

android
3个回答
1
投票

覆盖onResume方法并调用notifyDataSetChanged

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

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

0
投票

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

 @Override
public void onResume() {
super.onResume();
/// code to update data then notify Adapter
adapter.notifyDataSetChanged();
}
© www.soinside.com 2019 - 2024. All rights reserved.