ANDROID FRAGMENT传递参数_FRAGMENT之间传值的两种方法

在Activity中加载Fragment的时候、有时候要使用多个Fragment切换、并传值到另外一个Fragment、也就是说两个Fragment之间进行参数的传递、查了很多资料、找到两种方法、一种是通过共同的Activity传递、这种方法是在Activity里面添加一个字段、来临时保存要一些值

翻了一下Fragment的API、找到了另外一个方法来传递、就像Activity一样便捷的实现参数传递程序中的一段代码、是通过Bundle来传递的、相比之下第一种方法要简单一点


FRAGMENT参数传递方法一

在Activity中定义一个字段、然后添加set和get方法、代码如下、mTitle就是要传递的参数、如果是传递对象、可以把mTitle换成一个对象即可

public class DemoActivity {private String mTitle;public String getmTitle() {return mTitle;}public void setmTitle(String title) {this.mTitle = title;}}


Fragment调用方法、需要注意的是在设值的时候要进行强转一下

((DemoActivity)getActivity()).getmTitle();


FRAGMENT参数传递方法二

可以使用bundle进行参数传递、这样在两个Fragment跳转的时候就可以带上参数了、同样也可以传递一个复杂的对象

ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag(""));DemoFragment demoFragment = new DemoFragment();  Bundle bundle = new Bundle();  bundle.putString("key", "这是方法二");  demoFragment.setArguments(bundle);  ft.add(R.id.fragmentRoot, demoFragment, SEARCHPROJECT);  ft.commit();  


在另外一个Fragment获取参数的方式只需要一个语句、key是自己定义的一个标识、参数的形式只要bundle能传递都可以实现

String string = getArguments().getString("key");  


总结

从上面两种方法看来、方法一要简单一些、但个人觉得有点投机取巧、不过也很合Java的开发规范、如果是同一个Activity中要加载很多Fragment的话、这种方法无疑要简单很多

而方法二是使用了Android的Bundle传递的、这种方法应该更官方一点吧、不过在项目开发中、怎么实现简单就怎么来、也没太多关系

更多相关文章

  1. 【Android】Service 生命周期
  2. Android(安卓)R(11)targetSdkVersion 30的应用必须使用v2及以上签
  3. Android(安卓)带清除功能的输入框控件ClearEditText,仿IOS的输入
  4. android选择时间攻略
  5. 捕获Android运行时改变
  6. Android(安卓)四大核心组件之Activity
  7. Android自定义动画学习,实现左右摇摆动画
  8. Android(安卓)ContentProvider UnderStanding
  9. 在Android中使用Lombok减少编码

随机推荐

  1. Android EditText 自动拼写检查报错:andr
  2. Android权限获取机制与常见权限不足问题
  3. Android判断网络状态
  4. ndk 历史版本下载
  5. android 输入对话框
  6. Android(安卓)通过hosts屏蔽指定ip的网络
  7. Android(安卓)Binder 机制学习总结(一)
  8. Android(安卓)中使用Pull解析XML文件
  9. android中ActionBar +Fragment
  10. hardcode UI for android