2

我有一個RecyclerView自定義Adapter在網格(使用Gridlayout Manager)中顯示矩形元素(約15,數字可以更改,如果用戶添加/刪除項目)。 RecyclerView更新Recyclerview自定義適配器的ViewHolder值

這些元素由ImageViewTextView組成。我希望在收到來自網絡請求的新結果(例如每2分鐘)後定期更新這兩個視圖。

什麼是更新這些視圖的最佳方法?我如何識別具體的ViewHolder?我怎樣才能訪問這些元素的ViewHolder值?最好在Activity中保留對每個ViewHolder的引用,以便我想更改它們?還是應該用新值創建一個新元素並用它替換當前元素?什麼會被認爲是最佳實踐?

回答

3

如果您將圖像視圖和文本視圖的值存儲在數組列表中,則可以在數據集中有更改時調用適配器上的notifyDataSetChanged。

例如,如果你有說一個網格對象,其屬性包括圖像URI(設置圖像)和字符串(以文本視圖設置)和一些數組列表說

List<Grid> gridList = new ArrayList<>(); 

可以更新任何新數據您在ArrayList中得到和你做在數組列表中的電話

adapter.notifyDataSetChanged(); 
+0

非常感謝您的回覆,我會盡力的! – Eve

1

最好的做法更新後更新的觀點,它的數據時,一些數據的變化。你必須始終這樣做。方法

adapter.notifyDataSetChanged 

爲您做到這一點。
當你更新一些數據時,你必須告訴系統,因爲有一個重要的動作叫做回收,當你使用一個視圖持有者時,你給系統回收一個視圖的可能性,意味着什麼意思是不改變日期的視圖存儲在視圖保持器中,所以列表不需要再次使用

findViewById 

相關問題