Fragment和Activity之间传值的方法
2020-07-06 00:30
1116 查看
文章目录
从Activity传到Fragment中
通过setArguments()方法传值
这个方法需要先实例化一个Bundle对象作为载体进行传值
Activity
//实例化Fragment Fragment1 f = new Fragment1(); //实例化一个Bundle对象 Bundle bundle = new Bundle(); //存入数据到Bundle对象中 bundle.putString("msg1", "这是由Activity发往Fragment的数据"); //调用Fragment的setArguments方法,传入Bundle对象 f.setArguments(bundle); //添加、替换显示的Fragment ......
上面前四步可以简写为
Fragment1 f = new Fragment1().setArguments(new Bundle() .putString("msg1", "这是由Activity发往Fragment的数据"));
Fragment1
Bundle b = getArguments(); String msg1 = b.getString("msg1"); //已经获取到值 ......
通过获取对象进行传值
Activity
public String sendMsg(){ return "这是通过一个普通方法传递过去的消息";
在Fragment1的onAttach方法中
String msg = ((Activity的类型)context).sendMsg(); //已经获取到值 ......
从Fragment传到Activity中
- 在Fragment中定义一个接口,在该接口中声明一个用于传递数据的方法
- 让Activity实现该接口,然后重写回调方法,获取传入的值,然后做处理
- 在自定义Fragment中,声明一个回调接口的引用
- 在onAttach方法中,为第三步的引用赋值
- 用引用调用传递数据的方法
Fragment1
//1.定义接口 public interface MyListener{ public void sendMsg(String msg); } //3.声明一个引用 private MyListener ml; //4.为引用赋值 public void onAttach(Context context) { super.onAttach(context); ml = (MyListener)getActivity(); //传递消息方法,不一定在onAttach中实现 ml.sendMsg("消息"); }
Activity
//2.实现Fragment1的接口 public void sendMsg(String msg) { Log.e("TAG", "Fragment传回的数据:" + msg); }
Fragment之间传值
Fragment之间的传值前提是它们之间有交互。在满足前条件提下想实现传值的话只需要实例化对应的Fragment对象,通过实例化对象调用对应的set方法就可以实现传值
相关文章推荐
- Activity和Fragment之间相互传值和调用方法
- Activity与Activity,Fragment之间的数据传递方法
- Activity与Fragment之间的生命周期方法
- activity和activity之间传递对象,fragment和fragment之间传递对象的方法
- Fragment跟Activity之间的通信(互相调用方法)
- Activity和Fragment之间传递数据的方法
- Activity与fragment之间数据传递方法
- 单例的fragment和activity之间使用回调函数的方法
- Activity 和Fragment 两个之间的跳转方法
- Android:Activity+Fragment及它们之间的数据交换
- Android-Activity与Fragment之间传递数据
- Android编程实现两个Activity之间共享数据及互相访问的方法
- Fragment的onActivityResult方法为什么有的时候不回调
- 使用FragmentTransaction管理fragment时,对activity控件进行控制的方法
- Fragment与Activity之间传递数据
- fragment与Activity之间数据的传递
- Android Activity之间传递图片(Bitmap)的方法
- Fragment中的Activity跳转到MainActivity中的其他Fragment方法
- 安卓开发之fragment的setUserVisibleHint,onResume,onHiddenChanged三个方法的应用与之间的区别
- Fragment 跳转到Activity onActivityResult方法不响应