2016-05-08 11 views
0

我有一個在RecyclerView列表中的CardView中顯示的int變量。該值使用TextView顯示。一旦該值用於填充OnBindViewHolder中的TextView,我該如何凍結/永久保存該值,以便下次在下一次創建CardView時運行onBondViewHolder時不會更改?Android:我如何讓一個整型變量的值在CardView/RecyclerView中變成固定/永久的?

「cardNumsTotal」是在ViewHolder中創建的TextView。

「dblist」是ArrayList,顯示RecyclerView中的模型數據。

「getCardNum」是來自SQLite數據庫的整數數據的getter。它是一個計數器,因此每次爲RecyclerView列表創建新的CardView時,CardNum都會加1。

下面的代碼,我顯示了一些不正確的例子,我正在嘗試實現的正確例子。我已經在ViewHolder和OnBindViewholder中的TextView上嘗試了setFreezesText(true),但沒有運氣。當前錯誤是onBindViewHolder正在更新所有CardView的所有TextView,其CardDum的值爲,當前值爲。基本上,我希望CardView的TextView在創建每個CardView的時候使用CardNum整數的值填充。由於CardNum是一個計數器,所以我應該看到CardView#正在相繼形成:1,2,3,4,5 ... CardView的順序是從RecyclerView列表的最上面到最老的。所以,如果創建了五個CardView,我應該在頂部看到5號卡,然後是4,3,2,1。

Adapter.java 

... 
public class ListViewHolder extends RecyclerView.ViewHolder { 

    TextView cardNumstotal; 

    public ListViewHolder(View itemView) { 
     super(itemView); 

     cardNumstotal = (TextView)itemView.findViewById(R.id.cardNumstotal); 
    } 
} 

... 
@Override 
public void onBindViewHolder(final ListViewHolder holder, final int position) { 

    holder.cardNumstotal.setText(String.valueOf(dbList.get(position).getCardnum())); 

} 

enter image description here

回答

0

這個怎麼樣?

private boolean updated = false; 

@Override 
public void onBindViewHolder(final ListViewHolder holder, final int position) { 

    if(updated) return;  
    holder.cardNumstotal.setText(String.valueOf(dbList.get(position).getCardnum())); 
    updated = true; 

} 
+0

這是否意味着:如果更新然後轉換爲布爾值(固定)? – AJW

+0

不工作。先前的CardView的TextView是空白的。最近創建的CardView的TextView正確填充。 – AJW

+0

我認爲上面的布爾值只是幫助顯示TextView上的當前Cardnum總數,但之前的TextView被忽略。 – AJW