Fragment 与 Activity/Fragment 的数据传递

Activity ---> Fragment

1.设置Bundle
  1. 在Activity中,通过设置如下的方法。
 Bundle args = new Bundle();  
 args.putString("name", name);
 BaseFragment fragment = new CollectionFragment();
 fragment.setArguments(args);  
  1. 在Fragment中,通过 Bundle bundle = getArguments(); 获取参数

Fragment ---> Activity

传递数据到承载Fragment的Activity

  1. Fragment中通过 getActivity()方法获取到Activity,通过 activity.xxx()方法来设置数据。

传递数据到新的 Activity

  • 没有数据返回
    Fragment给Activity传数据通过 startActivity() 方法既可,数据存入intent之中。

  • 有数据返回
    如果 Fragment 给 Activity 中传递数据需要有回调方法的时候,

  1. Fragment之中需要调用 this.startActivity() 方法,不能用 getActivity.startActivity()方法。
  2. Activity 中 setResult
 Intent intent = getIntent();
 intent.putExtra("cityNameFromActivity",localtion);
 setResult(ProprietaryTradingFragment.CITYREQUESTCODE,intent);
  1. Fragment 中重写 onActivityResult() 方法,进行数据接收。
    如果Fragment所在的Activity中已经有了 onActivityResult()方法,Fragment中的 onActivityResult()方法一定要加上 super.onActivityResult(requestCode, resultCode, data);方法

Fragment ---> Fragment

参考文章
1.启舰

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容