簡體   English   中英

Android-如何從ViewPager中的另一個片段更新我的Recyclerview?

[英]Android - How to update my recyclerview from another fragment in a viewpager?

所以我在布局中有2個片段。 我使用viewpager進行設置。 在第一個片段中,我有一個充滿數據的recyclerview。 在第二個片段中,我有一個微調器。 當用戶在微調器中選擇某些內容時,應該根據選擇用新數據更新recyclerview。 我如何在第二個片段中實現這一點,即用戶從微調器中選擇一個選項,而不是向后滑動到第一個片段,並且recyclerview已經使用新數據進行了更新?

謝謝!

您可以通過不同的方式進行操作:

  1. 使用一個Intent並在其中添加一些內容:

     Intent intent = new Intent(); intent.putExtra("foo",somevalue); 

    然后發送

    sendBroadcast(意圖)

    您的接收器類只需要擴展BroadcastReceiver類並更新onReceive方法中的數據。

     public class receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //manipulate your data } } 

    記住注冊您的接收者

  2. 使用包含您的數據的Singleton類 因此,您可以從第一個片段中設置數據(在選擇微調器之后),並從第二個片段中獲取數據(在onCreate()方法中)

RecyclerView的適配器和數據列表放在父活動中,而不要放在片段中。 Spinner onItemSelected()中,調用adapter.notifyDatasetchanged (或notifyItem(Range)Inserted/Changed/Removed() )。

如果您有大量的片段間通信,那么完成此操作的一種非常簡單的方法是實現EventBus( https://github.com/greenrobot/EventBus )。 在EventBus上注冊兩個片段,然后在片段B的微調器中選擇一個項目時,發送一個SpinnerItemSelected事件。 如果片段A在總線上注冊,它將接收它,並且您可以在接收到它時調用notifyDatasetChanged()

暫無
暫無

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

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