我有兩個片段叫做fragmentA和FragmentB。我可以通過添加FragmentA來反向堆棧從FragmentA導航到FragmentB。然後,我在FragmentB上做了一些工作,並根據FragmentB上所做的更改,當按回退按鈕返回FragmentA時,應更新FragmentA。無論如何要實現這種情況?從當前片段更新以前的片段
0
A
回答
0
0
你可以用你想在FragmentA以更新活動,然後得到的數據fragmentA中的onResumeØ東西
//method in activity with the data to set
public void setData(recieve data to be set)
{
//data you want to show in FragmentA;
}
從fragmentB使用setData數據創建一個方法
((MainActivity)getActivity()).setData(send some data);
創建在Activity中給出更多的方法,它給你你設置的數據 然後從fragmentA getData()
((MainActivity)getActivity()).getData(send some data);
0
您可以使用LocalBroadcastManager
。在Fragment
的附件和分離器上註冊,您需要像下面的代碼那樣更新。
@Override
public void onAttach(Context context) {
super.onAttach(context);
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(
_onProfileUpdate,
new IntentFilter(UserDefault.broadcastProfileUpdate));
}
@Override
public void onDetach() {
super.onDetach();
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(
_onProfileUpdate);
}
在你的片段創建手柄..
private BroadcastReceiver _onProfileUpdate = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
setUpBasicInfo();
}
};
每當需要更新片段,只是從另一個片段調用監聽器。您也可以通過意圖傳遞所需的參數。
Intent in = new Intent(UserDefault.broadcastProfileUpdate);
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(in);
這裏,UserDefault.broadcastProfileUpdate
是一些靜態字符串或讓說鍵。
相關問題
- 1. 確定當前片段前的片段
- 2. 從MainActivity刷新當前片段
- 3. 如何回到以前的片段,從當前片段中的Android
- 4. 回到以前的片段
- 5. 保持當前片段
- 6. 隱藏以前的片段添加新
- 7. 從服務中獲取當前片段
- 8. 從片段中完成當前活動
- 9. 如何加載與當前片段相同的空間中的新片段
- 10. 刪除當前片段,而代之以一個新的
- 11. 片段交易:如何交換數據到以前的片段
- 12. 刪除片段並沒有給出以前的片段焦點
- 13. 關閉當前片段時,替換片段
- 14. 谷歌地圖片段取代當前片段
- 15. 片段旋轉不恢復當前片段
- 16. Android將當前片段替換爲另一個片段
- 17. 清除backstack並用頂級片段替換當前片段
- 18. FragmentManager.popBackStack()將當前片段添加到片段
- 19. 如何獲得當前片段,並與另一片段
- 20. Android刪除當前片段並獲取刪除片段名稱
- 21. 如何獲取當前片段的ID?
- 22. 跟蹤當前顯示的片段
- 23. 如何從活動更新片段/更新片段ui?
- 24. 如何從另一個片段中刪除當前添加的子片段?
- 25. 片段是否可以支持前一個片段?
- 26. 回到以前的片段的Android
- 27. 開始之前的片段
- 28. 如何獲得以前的片段?
- 29. 返回到以前的片段
- 30. 使用fragmentpageradapter獲取當前片段
編碼您的更新功能,並在片段A的OnResume中調用它。請在調用函數之前檢查您是否來自Fragment B,因爲onResume也會在其他情況下調用。 –