我正在设计一个新闻应用程序,其中我在recyclerView中显示新闻文章。现在,在点击新闻文章时,我想更改其背景颜色以指示已读取新闻项目。
为此,首先在读取新闻时更新Firebase数据库中与新闻文章相对应的状态字段。然后我在我的Recycler Adapter中检查该字段的值,并在状态发生变化时更改背景。
但是,由于recyclerView的适配器是在片段的onCreateView中定义的,因此当我按下后退按钮时不会立即进行更改。而是在重新打开应用程序时发生更改,因为onCreateView被调用了那个时间。那么如何在片段的onResume中更新适配器并相应地更新recyclerView?
覆盖onResume
方法并调用notifyDataSetChanged
:
@Override
public void onResume() {
super.onResume();
adapter.notifyDataSetChanged();
}
从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();
}
添加您的代码以更新数据并通知适配器
@Override
public void onResume() {
super.onResume();
/// code to update data then notify Adapter
adapter.notifyDataSetChanged();
}