Activity与Activity,Activity与Fragment及Fragment与Fragment之间传值
2017-08-06 13:39
465 查看
1,Activity与Activity通信及Activity与Fragment通信
1) 当Fragment跟Activity绑定之后,在Fragment中可以直接通过getActivity()方法获取到其绑定的Activity对象,这样就可以调用Activity的方法了。在Activity中可以通过如下方法获取到Fragment实例
FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);
Fragment fragment = fragmentManager.findFragmentById(id);
获取到Fragment之后就可以调用Fragment的方法。也就实现了通信功能。
2)另外也可以调用fragment.setArguments(Bundle)方法,将数据绑定到Fragment域中。
可传输的数据类型: a.基本数据类型(数组), b. String(数组), c. Bundle(Map), d. Serializable(Bean), e.Parcelable(放在内存一个共享空间里);
基本类型:
Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("name", "张飞"); // 携带数据
intent.putExtra("age", 12);
startActivity(intent);
一捆数据:
Intent intent = new Intent(this, OtherActivity.class);
Bundle b1 = new Bundle();
b1.putString("name", "赵云");
b1.putInt("age", 25);
Bundle b2 = new Bundle();
b2.putString("name", "关羽");
b2.putInt("age", 44);
intent.putExtra("b1", b1);
intent.putExtra("b2", b2);
序列化对象(须实现序列化接口):
Intent intent = new Intent(this, OtherActivity.class);
Person p = new Person("张辽", 44);
intent.putExtra("p", p);
接收数据:
在OtherActivity 的onCreate()方法,通过 getIntent().get 相关的数据的方法来获取数据;
关闭时返回数据
基本流程:
使用startActivityForResult(Intent intent, int requestCode) 方法打开Activity;
重写onActivityResult(int requestCode, int resultCode, Intent data) 方法;
新Activity中调用setResult(int resultCode, Intent data) 设置返回数据之后,关闭Activity就会调用上面的onActivityResult方法;
2,2个Fragment之间有一个公共的桥梁---->Activity
Fragment与fragment通信
1) 当Fragment跟Activity绑定之后,在Fragment中可以直接通过getActivity()方法获取到其绑定的Activity对象,这样就可以调用Activity的方法了。在Activity中可以通过如下方法获取到Fragment实例
FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);
Fragment fragment = fragmentManager.findFragmentById(id);
获取到Fragment之后就可以调用Fragment的方法。也就实现了通信功能。
2)另外也可以调用fragment.setArguments(Bundle)方法,将数据绑定到Fragment域中。
可传输的数据类型: a.基本数据类型(数组), b. String(数组), c. Bundle(Map), d. Serializable(Bean), e.Parcelable(放在内存一个共享空间里);
基本类型:
Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("name", "张飞"); // 携带数据
intent.putExtra("age", 12);
startActivity(intent);
一捆数据:
Intent intent = new Intent(this, OtherActivity.class);
Bundle b1 = new Bundle();
b1.putString("name", "赵云");
b1.putInt("age", 25);
Bundle b2 = new Bundle();
b2.putString("name", "关羽");
b2.putInt("age", 44);
intent.putExtra("b1", b1);
intent.putExtra("b2", b2);
序列化对象(须实现序列化接口):
Intent intent = new Intent(this, OtherActivity.class);
Person p = new Person("张辽", 44);
intent.putExtra("p", p);
接收数据:
在OtherActivity 的onCreate()方法,通过 getIntent().get 相关的数据的方法来获取数据;
关闭时返回数据
基本流程:
使用startActivityForResult(Intent intent, int requestCode) 方法打开Activity;
重写onActivityResult(int requestCode, int resultCode, Intent data) 方法;
新Activity中调用setResult(int resultCode, Intent data) 设置返回数据之后,关闭Activity就会调用上面的onActivityResult方法;
2,2个Fragment之间有一个公共的桥梁---->Activity
Fragment与fragment通信
相关文章推荐
- Android笔记--简单的Fragment和Activity的之间的数据交互(传值)
- [置顶] 如何在同一个Activity中的Fragment与Fragment之间传值
- Android 关于Fragment与Activity之间传值
- Fragment系列解析之三---Fragment和Fragment、Activity之间传值
- AndJump --- Android进阶,注解在Activity与Fragment之间传值
- ANDROID安卓activity与fragment,activity之间互相传值(一)
- activity与activity之间怎么传值,与fragment是怎么创的?
- Fragment之间通过Activity相互传值和调用的2个方式
- Activity和Fragment之间相互传值和调用方法
- activity和fragment之间的数据传值思路
- 外部Activity和fragment之间的切换,传值
- Fragment的生命周期以及跟Activity之间互相传值小总结
- Fragment与Activity之间传值
- activity嵌套fragment,fragment内嵌fragment之间传值切换fragment
- ANDROID安卓activity与fragment,activity之间互相传值(三)
- Fragment与Activity之间传值,Fragment与Fragment传值以及对commit的理解
- fragment与activity之间的回调,用于数据更新操作(是fragment向activity里传值)
- Fragment的生命周期以及跟Activity之间互相传值小总结
- ANDROID安卓activity与fragment,activity之间互相传值(四)
- Fragment和activity之间的通信