Android 两个Fragment之间如何传递数据
FragmentA启动FragmentB,做一些选择操作后,返回FragmentA,需要把FragmentB里面选择的数据传回来。有什么办法?
Fragment之间不能直接通信,必须通过Activity来完成,具体步骤。
1. 在FragmentA中定义通信接口,通过该接口向Activity发送数据。
public class FragmentA extends Fragment {
private onButtonPressListener mListener;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_linmo_select_beitie, container, false);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mListener.onOKButtonPressed(selectedBeitie);
}
});
return view;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (onButtonPressListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement onOkButtonPressed");
}
}
public interface onButtonPressListener {
void onOKButtonPressed(LinmoBeitieItem item);
}
}
2. 在Activity中实现该接口,并通过该接口向FragmentB传递数据。
public class MainActivity extends Activity implements FragmentA.onButtonPressListener {
@Override
public void onOKButtonPressed(LinmoBeitieItem item) {
FragmentB fragmentB = (FragmentB)getFragmentManager().findFragmentById(R.id.container);
fragmentB.onBeitieSelected(item);
}
}
3. FragmentB接收到数据并处理。
public class FragmentA extends Fragment {
public void onBeitieSelected(LinmoBeitieItem item) {
// ...
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:Android自定义ViewPagerIndicator实现炫酷导航栏指示器(ViewPager+Fragment)Android Activity与Fragment之间的跳转实例详解Android中ViewPager获取当前显示的FragmentAndroid中fragment与activity之间的交互(两种实现方式)Android基础之使用Fragment控制切换多个页面Android基础之Fragment与Activity交互详解Android中fragment嵌套fragment问题解决方法Android Fragment 基本了解(图文介绍)Android 管理Activity中的fragmentsAndroid的Fragment的生命周期各状态和回调函数使用Android中Fragment的加载方式与数据通信详解