Android 两个Fragment之间传递数据实例详解

作者:lqh 时间:2022-06-23 19:30:09 

 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) {
   // ...
 }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://www.cnblogs.com/graphics/p/5151547.html

标签:Android,Fragment,数据传递
0
投稿

猜你喜欢

  • Java C++ 算法题解leetcode669修剪二叉搜索树示例

    2022-09-22 04:56:13
  • 关于工厂方法模式的Java实现

    2021-12-20 18:06:13
  • JavaWeb项目Servlet无法访问问题解决

    2022-10-10 03:33:52
  • Mybatis实现分表插件

    2023-07-23 12:41:54
  • Android下拉列表spinner的实例代码

    2023-07-31 20:39:47
  • Java超详细讲解设计模式之一的单例模式

    2023-03-09 10:59:09
  • Unity Shader实现3D翻页效果

    2021-10-07 10:03:45
  • 如何在mapper文件中使用in("str1","str2")

    2023-07-10 10:40:51
  • Java工厂模式的使用细则介绍

    2022-03-18 01:57:22
  • C#6.0中你可能不知道的新特性总结

    2023-08-17 04:25:54
  • 举例说明自定义C++异常处理的实例

    2022-10-25 13:45:27
  • Java后端学习精华之TCP通信传输协议详解

    2021-08-06 03:15:42
  • java清除u盘内存卡里的垃圾文件示例

    2023-05-12 06:41:38
  • Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

    2023-08-12 15:25:39
  • Spring bean的实例化和IOC依赖注入详解

    2023-11-23 23:57:15
  • C#实现简单聊天程序的方法

    2022-01-02 22:31:20
  • java日期操作工具类(获取指定日期、日期转换、相隔天数)

    2023-11-28 06:42:53
  • Java实现批量导入excel表格数据到数据库中的方法

    2021-06-22 07:39:49
  • Android 将view 转换为Bitmap出现空指针问题解决办法

    2022-02-12 02:17:23
  • java 实现将一个string保存到txt文档中

    2022-07-30 05:32:38
  • asp之家 软件编程 m.aspxhome.com