SharedPrefereces 更改后更新 RecyclerView 适配器

Update RecyclerView adapter after SharedPrefereces changed

我有 RecyclerView 和自定义 RecyclerView 适配器。

RecyclerView "opens" 的每一行(当用户点击它时)使用 CardFlipAnimation(AnimatorSet).

在每一行中都有一个按钮可以更改 SharedPreferences 中的 int 值,而 TextView 则显示该值。

如果我打开了不止一行,我需要动态更改所有打开的行中的所有 TextViews

NotifyDataSetChanged 等更新 RecyclerView 中的数据很好,但问题是它们关闭打开的行(因为对于标准,thay 关闭然后用 AnimatorSet 打开)

我现在的主要任务是了解如何在所有打开的行中只更新一个 TextView 并保持它们打开(不要触摸 AnimatorSet)。 我想我可以使用 Observer,但我不知道如何正确地实现他。

如果你有什么想法请帮助我。

感谢您的回答

好吧,我终于找到了解决方案,它有点难看,但它完全符合我的需要。

首先:我将我的 RecyclerView 传递给 Adapter

        ...
        public CardBaseAdapter(RecyclerView recyclerView,...) {
        ...
        this.mRecyclerView = recyclerView;
        ....

其次:在我的适配器中创建一个方法:

    public void updateViews() {

        for(int i =0;i<getItemCount();i++){

            HeaderViewHolder holder = (HeaderViewHolder)recyclerView.findViewHolderForAdapterPosition(i);
            if(holder!=null){

             //Update views at holders
            }

        }

}

第三种: 当我需要更新视图时调用这个函数

P.S。我不确定这是更新视图的正确方法,但如果您知道另一个好的解决方案,它会起作用,post 请