![](/img/trans.png)
[英]ViewPager in Fragment called from another Fragment Android
[英]Android - How to update my recyclerview from another fragment in a viewpager?
所以我在布局中有2個片段。 我使用viewpager進行設置。 在第一個片段中,我有一個充滿數據的recyclerview。 在第二個片段中,我有一個微調器。 當用戶在微調器中選擇某些內容時,應該根據選擇用新數據更新recyclerview。 我如何在第二個片段中實現這一點,即用戶從微調器中選擇一個選項,而不是向后滑動到第一個片段,並且recyclerview已經使用新數據進行了更新?
謝謝!
您可以通過不同的方式進行操作:
使用一個Intent並在其中添加一些內容:
Intent intent = new Intent(); intent.putExtra("foo",somevalue);
然后發送
您的接收器類只需要擴展BroadcastReceiver類並更新onReceive方法中的數據。
public class receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //manipulate your data } }
記住注冊您的接收者
使用包含您的數據的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.