Android 两个Fragment之间传递数据实例详解
Android两个Fragment之间如何传递数据
FragmentA启动FragmentB,做一些选择操作后,返回FragmentA,需要把FragmentB里面选择的数据传回来。有什么办法?
Fragment之间不能直接通信,必须通过Activity来完成,具体步骤。
1.在FragmentA中定义通信接口,通过该接口向Activity发送数据。
publicclassFragmentAextendsFragment{
privateonButtonPressListenermListener;
@Override
publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){
Viewview=inflater.inflate(R.layout.fragment_linmo_select_beitie,container,false);
listView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
mListener.onOKButtonPressed(selectedBeitie);
}
});
returnview;
}
@Override
publicvoidonAttach(Activityactivity){
super.onAttach(activity);
try{
mListener=(onButtonPressListener)activity;
}catch(ClassCastExceptione){
thrownewClassCastException(activity.toString()+"mustimplementonOkButtonPressed");
}
}
publicinterfaceonButtonPressListener{
voidonOKButtonPressed(LinmoBeitieItemitem);
}
}
2.在Activity中实现该接口,并通过该接口向FragmentB传递数据。
publicclassMainActivityextendsActivityimplementsFragmentA.onButtonPressListener{
@Override
publicvoidonOKButtonPressed(LinmoBeitieItemitem){
FragmentBfragmentB=(FragmentB)getFragmentManager().findFragmentById(R.id.container);
fragmentB.onBeitieSelected(item);
}
}
3.FragmentB接收到数据并处理。
publicclassFragmentAextendsFragment{
publicvoidonBeitieSelected(LinmoBeitieItemitem){
//...
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短