Recyclerview notifyItemChanged不起作用

时间:2017-08-14 10:07:38

标签: android android-recyclerview

我尝试在"基本操作"之后更新一个特定项目。 (比如点击一个项目)我的回收站视图中,但方法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:我使用标签,也许有一些东西可以管理吗?! (在链接到每个选项卡的每个片段中,都有一个由片段管理的回收器视图)

0 个答案:

没有答案