所以我在tablayout中有2個片段。我用viewpager來設置它。 在第一個片段中,我有一個充滿數據的回收站。在第二部分我有一個微調。 當用戶在微調器中選擇了某些東西時,應根據選擇使用新數據更新recyclerview。 我如何在第二個片段中實現這一點:用戶從微調器中選擇一個選項而不是滑回第一個片段,並且recyclerview已經用新數據更新了?Android - 如何更新viewpager中另一個片段的recyclerview?
謝謝!
所以我在tablayout中有2個片段。我用viewpager來設置它。 在第一個片段中,我有一個充滿數據的回收站。在第二部分我有一個微調。 當用戶在微調器中選擇了某些東西時,應根據選擇使用新數據更新recyclerview。 我如何在第二個片段中實現這一點:用戶從微調器中選擇一個選項而不是滑回第一個片段,並且recyclerview已經用新數據更新了?Android - 如何更新viewpager中另一個片段的recyclerview?
謝謝!
你可以以不同的方式:
使用的 Intent ,並把一些額外的變量:
Intent intent = new Intent();
intent.putExtra("foo",somevalue);
然後用
發送您的接收器iver類只是擴展了 BroadcastReceiver 類並更新了方法中的數據 onReceive 方法。
public class receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//manipulate your data
}
}
記得註冊您的接收器
使用包含您的數據的Singleton Class。所以,你可以從第一片段(後微調選擇)設定的數據,並從你的第二個片段得到它(在onCreate()法)
把RecyclerView
的適配器和數據的父列表活動而不是片段。在Spinner
的onItemSelected()
中,請致電adapter.notifyDatasetchanged
(或notifyItem(Range)Inserted/Changed/Removed()
)。
如果你有很多的片段間通信,一個非常簡單的方法來完成這將是實現EventBus(https://github.com/greenrobot/EventBus)。在EventBus上註冊這兩個片段,並且當在片段B的微調器中選擇一個項目時,發送一個SpinnerItemSelected事件。如果它在巴士上註冊,片段A將收到它,您可以在收到它後致電notifyDatasetChanged()
。