想象一下存在片段A和片段B.如果我單擊片段A上的按鈕,它會導致片段C.如果我單擊片段B上的按鈕,它也會導致片段C. 現在我想檢測從哪個片段創建片段C.可能嗎?確定當前片段前的片段
0
A
回答
2
您可以簡單地設置一個變量,並傳遞給C片段通過捆綁而做這樣的FragmentTransaction如圖
Fragment fr=new FragmentA();
FragmentManager fm=getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
Bundle args = new Bundle();
args.putString("from", "fragmentA");
fr.setArguments(args);
ft.replace(R.id.content_frame, fr);
ft.commit();
,你可以檢索同在C片段這樣
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext = getArguments().getString("from"); // with value of strtext,you will get to know from which fragment you come from
return inflater.inflate(R.layout.fragment, container, false);
}
+0
中檢查一個函數是否有任何方法來檢測它使用回棧或類似的東西?因爲可能有很多其他片段導致片段C – stephen1706 2014-11-03 11:28:38
+0
因此,當您將事務處理爲片段C並且片段C中的代碼始終保持相同時,您每次只需複製粘貼此代碼。如果你不想這樣,你可以在你的偏好設置一個變量,然後用它來區分片段C中的不同片段 – 2014-11-03 11:43:34
1
##You can pass a boolean value and toggle between two fragments.##
Bundle args = new Bundle();
args.putBoolean("key",true) // for fragement A
fr.setArguments(args);
ft.replace(R.id.content_frame, fr);
ft.commit();
if(getArguments().getBoolean("key");)
Log.e(LOGTAG,"FROM FRAGMENT A");
else
Log.e(LOGTAG,"FROM FRAGMENT B");
相關問題
- 1. 從當前片段更新以前的片段
- 2. 保持當前片段
- 3. 如何回到以前的片段,從當前片段中的Android
- 4. 確定當前在ViewPager中可見的片段
- 5. 關閉當前片段時,替換片段
- 6. 谷歌地圖片段取代當前片段
- 7. 片段旋轉不恢復當前片段
- 8. Android將當前片段替換爲另一個片段
- 9. 清除backstack並用頂級片段替換當前片段
- 10. FragmentManager.popBackStack()將當前片段添加到片段
- 11. 如何獲得當前片段,並與另一片段
- 12. Android刪除當前片段並獲取刪除片段名稱
- 13. 如何獲取當前片段的ID?
- 14. 跟蹤當前顯示的片段
- 15. 開始之前的片段
- 16. 回到以前的片段
- 17. 使用fragmentpageradapter獲取當前片段
- 18. 如何查找當前片段
- 19. 從MainActivity刷新當前片段
- 20. Visual Studio 2010片段 - 當前日期
- 21. 從服務中獲取當前片段
- 22. Android - 佈局留在當前片段
- 23. 獲取當前可見片段Android
- 24. ViewPager當前片段能見度
- 25. 從片段中完成當前活動
- 26. 獲取當前片段顏色
- 27. Android - 確定片段
- 28. 顯示前一個片段
- 29. 片段在ViewPager - 後攻內當前的frag效果的按鈕片段不是當前/可見光的frag
- 30. 如何加載與當前片段相同的空間中的新片段
你想在哪裏檢查片段C? – 2014-11-03 10:55:56
在片段C – stephen1706 2014-11-03 10:58:14