想象一下存在片段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. 确定当前在ViewPager中可见的片段
- 3. 片段旋转不恢复当前片段
- 4. 如何获得当前片段,并与另一片段
- 5. FragmentManager.popBackStack()将当前片段添加到片段
- 6. 关闭当前片段时,替换片段
- 7. Android将当前片段替换为另一个片段
- 8. Android删除当前片段并获取删除片段名称
- 9. Visual Studio 2010片段 - 当前日期
- 10. 如何查找当前片段
- 11. 获取当前片段颜色
- 12. 使用fragmentpageradapter获取当前片段
- 13. 获取当前可见片段Android
- 14. Android - 布局留在当前片段
- 15. Android - 确定片段
- 16. 显示前一个片段
- 17. 如何加载与当前片段相同的空间中的新片段
- 18. 家庭片段部分可见与当前片段的混合视图android studio
- 19. Android - 在交换片段之前加载片段的视图
- 20. 执行片段之前的方法将片段放入backstack
- 21. 通过导航抽屉替换之前的片段到新的片段,排除新片段中的前一个片段响应
- 22. Android之前的片段空白屏幕
- 23. 返回到以前的片段
- 24. 隐藏以前的片段添加新
- 25. 片段内部的片段
- 26. 片段上方的片段
- 27. 为什么片段之前叫过?
- 28. 在Onbackpressed上获取前一个片段
- 29. XML命名空间前缀:二片段
- 30. 片段之前使用了什么?
你想在哪里检查片段C? – 2014-11-03 10:55:56
在片段C – stephen1706 2014-11-03 10:58:14