1

我有RecyclerView與定製RecyclerView適配器。SharedPrefereces更改後更新RecyclerView適配器

使用CardFlipAnimation(AnimatorSet)時,RecyclerView的每一行「打開」(當用戶點擊它時)。

在每一行中都有一個按鈕,用於更改顯示此值的SharedPreferencesTextView中的int值。

如果我打開了多個行,我需要動態更改打開的所有行中的所有行TextViews

NotifyDataSetChanged和等在RecyclerView偉大的,但是,他們關閉開行(因爲非標準大公被關閉,然後打開與AnimatorSet)問題

我的主要任務,現在是瞭解如何只更新更新數據一個TextView在所有打開的行中,並保持它們打開(不要觸摸AnimatorSet)。 我想我可以使用Observer,但我不知道如何正確實施他。

如果您有任何想法,請幫助我。

感謝答案

回答

0

好吧,finaly我得到了一個解決方案,這是一個有點難看,但它的工作原理正是我所需要的。

首先:我通過我的RecyclerView到適配器

 ... 
     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 
      } 

     } 

} 

:調用這個函數的時候,我需要更新視圖

PS我不確定這是更新視圖的正確方式,但是它可以工作,如果您知道另一個很好的解決方案,請將其發送至

相關問題