1 回答

TA貢獻1887條經(jīng)驗 獲得超5個贊
View
來自 Facebook 的視圖與Android 中使用的視圖完全不同。
在 Android 中,View
是 Android 中的一個基本元素,然后由其他類對其進行擴展,為其添加一些自己的屬性View
。
所以,例如,
class TextView extends View{}
這是OOP 中繼承的基本問題。
繼承意味著,考慮一個例子,您創(chuàng)建一個名為“Car”的基類,您在其中編寫基本汽車的代碼,例如“汽車有四個輪胎”,以及汽車具有的所有基本屬性。然后創(chuàng)建另一個名為 Bus 的類,并使其擴展這個 Car 類,這樣巴士將具有其父類“Car”的屬性,并且能夠添加其自身的一些屬性,例如“Bus is long” . 所以在這里,“Car”類就像“View”,而“Bus”類就像 TextView。
因此,例如,TextView
擴展View
類的功能以能夠在其中顯示一些文本/字符串。TextView
之所以稱為 a View
,是因為它繼承了基本View
類的屬性,并添加了一些自己的屬性。
如果你問如何在像 Facebook 這樣的帖子功能上實現(xiàn)“總瀏覽量”,你必須添加每次onBindViewHolder
在RecyclerView
.
因此,在 中onBindViewHolder
,您將調(diào)用該函數(shù)來獲取當前查看計數(shù),然后遞增該值并將其添加到該帖子的數(shù)據(jù)庫中。
你給了兩個案例,
編輯:
正如您在評論中所問,您想要:
每當用戶看到帖子時,增加數(shù)據(jù)庫中的視圖。
為此,您需要在您的 中調(diào)用一個函數(shù)
private void incrementTotalViews();
,onBindViewHolder
此RecyclerView.Adapter
函數(shù)應獲取最新視圖,將其遞增 1,然后將新數(shù)字設置到數(shù)據(jù)庫中。雖然,即使用戶掉線并再次返回帖子,也會一次又一次地調(diào)用它。您希望在單擊布局時存儲訪問者總數(shù)的值。為此,您需要在 中調(diào)用一個函數(shù)
ViewHolder
,只要單擊 itemView 就會調(diào)用該函數(shù)。
所以你需要添加類似的東西,
itemView.setOnClickListener()
super(itemView)
在ViewHolder 構造函數(shù)內(nèi)部下方。在這個偵聽器的 onClick 中,您需要調(diào)用一個函數(shù)來存儲訪問者總數(shù)的值。
添加回答
舉報