我尝试在"基本操作"之后更新一个特定项目。 (比如点击一个项目)我的回收站视图中,但方法notifyItemChanged似乎没有按预期工作。
实际上,正确调用了onBindViewHolder方法,并且我想要在项目中更改的数据已正确完成。但是,我认为没有任何改变。我不明白为什么......
我的代码:
- MyFragment
private void initRecyclerView() {
_recyclerView = (RecyclerView) _rootView.findViewById(R.id.recyclerView);
_recyclerView.setHasFixedSize(true);
_layoutManager = new LinearLayoutManager(getActivity());
_recyclerView.setLayoutManager(_layoutManager);
_adapter = new MyAdapter(datas, this, getContext());
_recyclerView.setAdapter(_adapter);
}
当选择一个项目时,我会调用" _adapter.update(position)"在我的片段中。所以在我的适配器中我是这样的:
-Adapter
public void updateItem(int position) {
notifyItemChanged(position);
}
在此调用之后,我可以看到OnBindViewHolder方法正确调用,但视图上没有任何更改:(
编辑:onBindViewHolder的代码:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
MyOBject object = datas.get(position);
holder.text1.setText(object.getValue1());
holder.text2.setText(object.getValue2());
if (object.getLastTimeItemClicked() != null && object.getLastTimeItemClicked().compareTo(object.getLastTimeNewContent()) > 0) {
Log.d("test", "item clicked, content changed")
holder._backgroundItem.setCardBackgroundColor(_context.getResources().getColor(bgItemRead)); // I see this log after a tap on one item, so this code is working!
}
}
编辑2:我使用标签,也许有一些东西可以管理吗?! (在链接到每个选项卡的每个片段中,都有一个由片段管理的回收器视图)