0

所以我在tablayout中有2個片段。我用viewpager來設置它。 在第一個片段中,我有一個充滿數據的回收站。在第二部分我有一個微調。 當用戶在微調器中選擇了某些東西時,應根據選擇使用新數據更新recyclerview。 我如何在第二個片段中實現這一點:用戶從微調器中選擇一個選項而不是滑回第一個片段,並且recyclerview已經用新數據更新了?Android - 如何更新viewpager中另一個片段的recyclerview?

謝謝!

回答

0

你可以以不同的方式:

  1. 使用的 Intent ,並把一些額外的變量:

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

    然後用

    sendBroadcast(intent)

    發送

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

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

    記得註冊您的接收器

  2. 使用包含您的數據的Singleton Class。所以,你可以從第一片段(後微調選擇)設定的數據,並從你的第二個片段得到它(在onCreate()法)

0

RecyclerView的適配器和數據的父列表活動而不是片段。在SpinneronItemSelected()中,請致電adapter.notifyDatasetchanged(或notifyItem(Range)Inserted/Changed/Removed())。

如果你有很多的片段間通信,一個非常簡單的方法來完成這將是實現EventBus(https://github.com/greenrobot/EventBus)。在EventBus上註冊這兩個片段,並且當在片段B的微調器中選擇一個項目時,發送一個SpinnerItemSelected事件。如果它在巴士上註冊,片段A將收到它,您可以在收到它後致電notifyDatasetChanged()

相關問題