全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android中Activity和Fragment传递数据的两种方式

1、第一种方式,也是最常用的方式,就是使用Bundle来传递参数

 MyFragment myFragment = new MyFragment();
    Bundle bundle = new Bundle();
    bundle.putString("DATA",values);//这里的values就是我们要传的值
    myFragment.setArguments(bundle);

然后在Fragment中的onCreatView方法中,通过getArgments()方法,获取到bundle对象,然后通过getString的key值拿到我们传递过来的值。

2、第二种方式,是在宿主Activity中定义方法,将要传递的值传递到Fragment中,在Fragment中的onAttach方法中,获取到这个值。

//宿主activity中的getTitles()方法
public String getTitles(){
  return "hello";
}

//Fragment中的onAttach方法
  @Override
  public void onAttach(Activity activity) {
    super.onAttach(activity);
    titles = ((MainActivity) activity).getTitles();
  }
//通过强转成宿主activity,就可以获取到传递过来的数据

3、下面在扩展一下创建Fragment和传递数值

如果我们不需要传递数值,那就直接可以在宿主activity中,跟平常一样创建fragment,但是如果我们需要传递数据的话,可以使用newInstance(数据)方法来传递,这个方法是自己定义的,但是是定义在Fragment中的一个静态方法。

static MyFragment newInstance(String s){
    MyFragment myFragment = new MyFragment();
    Bundle bundle = new Bundle();
    bundle.putString("DATA",s);
    myFragment.setArguments(bundle);
    return myFragment;
  }

//同样,在onCreatView中直接获取这个值
 @Nullable
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.layout_fragment,container,false);
    Bundle bundle = getArguments();
    String data = bundle.getString("DATA");
    tv = (TextView) view.findViewById(R.id.id_fm_tv);
    if(data != null){
      tv.setText(data);
    }
    return view;
  }

在宿主activity中,创建Fragment

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,android.R.anim.fade_out);
    fragment1 = MyFragment.newInstance("这是第一个fragment");//这里只需要直接调用这个方法,就创建了一个fragment
    fragment2 = MyFragment.newInstance("这是第二个fragment");
    fragment3 = MyFragment.newInstance("这是第三个fragment");

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# activity之间传递数据.Fragment与Activity传递数据  # fragment之间传递数据  # Android从Fragment跳转到其他Activity的简单实例  # Android开发使用Activity嵌套多个Fragment实现横竖屏切换功能的方法  # Android 中Fragment与Activity通讯的详解  # 详解Android activity与fragment之间的通信交互  # Android闹钟启动时间设置无效问题的解决方法  # 安卓(Android)开发之统计App启动时间  # 准确测量 Android 应用中 Activity 和&nb  # 这是  # 是在  # 第一个  # 那就  # 不需要  # 第二个  # 只需要  # 可以使用  # 第三个  # 方法来  # 第二种  # 第一种  # 转成  # 最常用  # 大家多多  # 就可以  # 直接调用  # activity  # public  # getTitles 


相关文章: 建站之星如何取消后台验证码生成?  北京网站制作的公司有哪些,北京白云观官方网站?  建站之星安装后如何配置SEO及设计样式?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何通过智能用户系统一键生成高效建站方案?  如何快速搭建高效香港服务器网站?  淘宝制作网站有哪些,淘宝网官网主页?  香港服务器部署网站为何提示未备案?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  制作网站的公司有哪些,做一个公司网站要多少钱?  太原网站制作公司有哪些,网约车营运证查询官网?  购物网站制作公司有哪些,哪个购物网站比较好?  手机网站制作与建设方案,手机网站如何建设?  如何通过服务器快速搭建网站?完整步骤解析  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  西安大型网站制作公司,西安招聘网站最好的是哪个?  实例解析Array和String方法  建站主机与虚拟主机有何区别?如何选择最优方案?  建站之星导航菜单设置与功能模块配置全攻略  北京建设网站制作公司,北京古代建筑博物馆预约官网?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何通过建站之星自助学习解决操作问题?  如何通过西部数码建站助手快速创建专业网站?  ,想在网上投简历,哪几个网站比较好?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  C++中引用和指针有什么区别?(代码说明)  如何快速搭建支持数据库操作的智能建站平台?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  小型网站制作HTML,*游戏网站怎么搭建?  平台云上自助建站如何快速打造专业网站?  制作网站的模板软件,网站怎么建设?  C#如何序列化对象为XML XmlSerializer用法  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  建站之星好吗?新手能否轻松上手建站?  如何选择最佳自助建站系统?快速指南解析优劣  网站按钮制作软件,如何实现网页中按钮的自动点击?  高性价比服务器租赁——企业级配置与24小时运维服务  深圳网站制作培训,深圳哪些招聘网站比较好?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  5种Android数据存储方式汇总  如何通过山东自助建站平台快速注册域名?  如何在Ubuntu系统下快速搭建WordPress个人网站?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  如何在万网自助建站中设置域名及备案?  ,柠檬视频怎样兑换vip?  网站制作难吗安全吗,做一个网站需要多久时间? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。