簡體   English   中英

從Viewpager中的其他選項卡更新RecyclerView

[英]Update RecyclerView From Different Tab In Viewpager

我有一個帶有2個標簽的ViewPager 每個選項卡僅包含一個帶有RecyclerViewFragment 第一個選項卡中的RecyclerView包含所有Articles的列表,而第二個選項卡中的RecyclerView僅包含用戶喜歡的Articles的列表。 Article一個選項卡中的每個ArticleRecyclerView行中都有一個按鈕,允許用戶收藏它。 當用戶導航到第二個選項卡時,我希望新的收藏夾自動顯示(不強制用戶手動按下刷新按鈕)。 我該怎么做呢? 本質上,我需要從包含收藏夾的RecyclerView添加/刪除項目,但要從第一個片段中添加/刪除項目。

我嘗試過的事情

  • 在收藏夾片段的onRefresh()方法中調用adapter.notifyDataSetChanged() 這行得通,但是性能notifyDataSetChanged()很大,因為notifyDataSetChanged()並不是便宜的操作。 如果可能,我想避免這種情況。
  • 嘗試遵循本指南 ,並實現了一些接口。 問題是,當我嘗試從包含活動的片段中引用適配器時,適配器始終為null。 如果需要,我可以發布代碼以顯示我在做什么。

現在,我正在考慮使用SQLite DB在onClickListeners中存儲更改(收藏夾刪除/添加),然后在onResume()方法中檢查該表並分別使用notifyItemChanged()逐一處理更改。

有一個更好的方法嗎?

對於SQlite使用CursorLoaderSQlite加載數據。 您可以注冊以在表中的數據更改時得到通知。 然后,您的加載程序將自動再次加載數據。 檢查答案。 還要檢查線程。

要從互聯網獲取數據,您可以使用

  1. 通過父Activity與2個fragments進行通信。 檢查這個這個答案。 教程有助於更好地理解。
  2. LocalBroadcastManager通知從一個片段到另一個片段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM