Activity与Activity,Activity与Fragment及Fragment与Fragment之间传值

xiaoxiao2021-02-28  98

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通信
转载请注明原文地址: https://www.6miu.com/read-48040.html

最新回复(0)