带有Pass Parse对象的popBackStack

时间:2015-09-08 05:25:10

标签: android android-fragments

我有Activity AActivity A调用片段frag1frag1调用片段frag2。最后frag2拨打frag3

当我点击frag3中的按钮时,我想调用frag1,将对象从frag3传递并解析为frag1。我尝试使用从frag3发送到frag1的对象包来执行此操作。

我看到有popBackStack()方法。但是,我对这将如何工作有点困惑。使用这种方法是否安全?

我不知道怎么做。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用事件总线模式在片段之间传递数据(事件)。然后以通常的方式使用片段堆栈。

有几个流行的库实现了事件总线。我个人更喜欢

答案 1 :(得分:1)

使用本地广播。

在片段1上写入广播接收器,

在片段3的应用按钮上,广播您的数据,然后弹出片段3

例如 -

private final BroadcastReceiver myLocalBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
           ;

            Bundle bundle = intent.getExtras();

            if (bundle != null) {

             get data from bundle



            }



    };
片段3上的

(应用按钮):

      Intent localBroadcastIntent = new Intent(Constant.MY_ACTION);


        Bundle bundle = new Bundle();
        bundle.put("your data);

        localBroadcastIntent.putExtras(bundle);

        LocalBroadcastManager myLocalBroadcastManager =           LocalBroadcastManager.getInstance(getActivity());
        myLocalBroadcastManager.sendBroadcast(localBroadcastIntent);





        getActivity().getSupportFragmentManager().popBackStack();