Android 将数据从一个片段传递到另一个片段
我有两个活动,即活动A和活动B 活动A包含片段AF1、AF2。 活动B包含片段BF1、BF2 目前我在AF1 我们如何将数据绑定从AF1传递到AF2? 我们如何将数据包从AF1传递到BF2?Android 将数据从一个片段传递到另一个片段,android,android-activity,android-fragments,bundle,Android,Android Activity,Android Fragments,Bundle,我有两个活动,即活动A和活动B 活动A包含片段AF1、AF2。 活动B包含片段BF1、BF2 目前我在AF1 我们如何将数据绑定从AF1传递到AF2? 我们如何将数据包从AF1传递到BF2? 第一种方法是使用接口。以下是步骤的分解: 在AF1片段中创建一个接口-将调用该接口中的方法,并通过传递给它的参数将数据传递回。在活动中,实现该接口并重写该方法。调用该方法后,可以在AF2中创建另一个方法,您可以轻松地调用并传递相应的值。 本教程介绍了上述过程: FragmentOne.java 在活动中,实
第一种方法是使用接口。以下是步骤的分解: 在AF1片段中创建一个接口-将调用该接口中的方法,并通过传递给它的参数将数据传递回。在活动中,实现该接口并重写该方法。调用该方法后,可以在AF2中创建另一个方法,您可以轻松地调用并传递相应的值。 本教程介绍了上述过程: FragmentOne.java 在活动中,实现接口并重写上述方法:
public class ActivityOne extends Activity implements FragmentOne.OnSomethingCllickedListener{
@Override
public void onCreate(Bundle saveInstanceState){
/* as usual here */
}
@Override
public void updateActivity(int position){
/* call FragmentTwo's method here to update the view based on the position of item clicked here*/
FragmentTwo.updateView(position);
}
}
其次,要将活动与片段分离,请使用EventBus库。这非常简单,如下所示:
下载jar文件并将其添加到项目中。
创建一个事件类
在活动中注册事件在onDestroy中注销
当您想要通知事件的活动时,只需调用EventBus的post方法并传回相应的数据。
在活动内部,您需要一个方法onEventYourEventClassName event,然后您可以根据需要分别将值传递给片段。
我希望这有帮助。传递和检索数据的代码:
使用接口将活动中的一个片段与另一个片段进行通信&使用异步消息bindingintent.putExtrabundle将片段与另一个活动的片段进行通信。片段还可以侦听OneEvent本身,直接在片段之间传递,这是真的;因此,在本例中,您的活动不必了解任何有关您的片段的信息-强烈建议
public class ActivityOne extends Activity implements FragmentOne.OnSomethingCllickedListener{
@Override
public void onCreate(Bundle saveInstanceState){
/* as usual here */
}
@Override
public void updateActivity(int position){
/* call FragmentTwo's method here to update the view based on the position of item clicked here*/
FragmentTwo.updateView(position);
}
}
Bundle bundle =new Bundle();
bundle.putString("message", message);
Frag1 _fragment = new Frag1();
fragmentTransaction.replace(android.R.id.content, _fragment);
fragmentTransaction.commit();
Bundle bundle=getArguments(); //get data
if(bundle!=null)
{
message=bundle.getString("message") ;
}