其他分享
首页 > 其他分享> > android – 将数据从当前片段传回到先前的片段

android – 将数据从当前片段传回到先前的片段

作者:互联网

我在我的应用程序中使用导航抽屉.我有一个MainActivity,其余的是片段.所以问题是假设我有三个片段,如A,B,C.

现在在A我有一个按钮,我从A> B发送数据.
例如putSring(“datafrom A”,“data from A”);
现在在B我收到来自A的数据.
我在B中有一个按钮,我从B> C发送数据.
例如putSring(“datafrom B”,“data from B”);
现在在C中我从B接收数据
然后,我在C中有一个Button,并从C> B发送数据.
例如putSring(“data from C”,“data from C”);

所以,似乎在B中我从两个不同的片段获取数据.我尝试了所有使用活动,它与startActivityforresult配合得很好.但是,当所有碎片都是碎片时我怎么能管理.

解决方法:

当您将数据从片段A发送到片段B时,请使用与下面相同的布尔值: –

FragmentA – > FragmentB

FragmentB ldf = new FragmentB ();
Bundle args = new Bundle();
args.putBoolean("BOOLEAN_VALUE",true);
ldf.setArguments(args);

getFragmentManager().beginTransaction().add(R.id.container, ldf).commit();

当你将数据从片段C发送到片段B时,使用与片段A到B中使用的相同的BOOLEAN,如下所述 –

FragmentC – > FragmentB

FragmentB ldf = new FragmentB ();
    Bundle args = new Bundle();
    args.putBoolean("BOOLEAN_VALUE",false);
    ldf.setArguments(args);

    getFragmentManager().beginTransaction().add(R.id.container, ldf).commit();

在最后我们必须检查FragmentB中接收到的值是否像Fragment A OR FragemntC那样

FragmentB

   Boolean getValue= getArguments().getBoolean("BOOLEAN_VALUE");  
   if(getValue)
   {
    //VALUE RECEIVED FROM FRAGMENT A
   }
   else
   {
   //VALUE RECEIVED FROM FRAGMENT C
   }

标签:fragmentmanager,android,android-fragments,fragment
来源: https://codeday.me/bug/20191005/1856765.html