一、静态添加方式:创建好Fragment之后,在需要使用碎片的Activity的布局文件中添加

标签。

二、动态添加方式:先创建好fragment的布局文件,然后创建一个继承自Fragment的

类(此处为MyFragment),之后在重写的方法中加载好布局文件。然后在需要加载布

局文件的Activity中添加如下代码:

​ MyFragment fragment = new MyFragment();

FragmentManager manager =getManager();

FragmentTansaction transaction

=manager.beginTransaction();

transaction.add(R.id.container,fragment)​;

tansaction.commit();​

三 Fragment 和 Activity之间的通信方式

1.Fragment可调用getActivity()方法获取所在的Activity

2.Activity可调用FragmentManager的findFragmentById()或者

findFragmentByTag()来获取Fragment​

Activity-------->>Fragment:​

在activity中:​

Bundle bundle = new Bundle();

MyFragment fragment =new MyFragment();

bundle.putString("key","Deliever value")​;

fragment.setArguments(bundle);​

在MyFragment中:

Bundle bundle =getArguments();

textView.setText(bundle.getString("key"));//在MyFragment中有一个TextView​

Fragment--------->>Activity:

1>.在Fragment动态添加时:

需要在MyFragment中定义一个内部回调接口,再让包含My​Fragment的Activity实现该接口,重写接口中的方法。之后MyFragment可调用该回调方法,实现数据的传递。

在Fragment中:

String ​data ="Hello Activity";

MyListener listener;​

public void onAttach(Activity activity){

super.onAttach(activity);

listener

=(MyListener)activity;​

}​

​interface MyListener{

public void getData(String

data);

}

​onCreateView(...){

......

listener.getData(data);//将声明的data传递给Activity

}

​MainActivity implements MyListener{

public void getData(String

data){

Toast.makeText(MainActivity.this,"动态添加碎片需要定义内部接口"+data,Toast.LENGTH_LONG).show();

}

}

2>.在Fragment静态添加时:

假设已经有一个加载好布局的Fragment1,其布局中有一个Button和一个TextView。Fragment1还有一个data属性,现在我们需要做的就是讲data变量传递给Activity,在Activity中通过setData赋值后,将值显示在Fragment1中的TextView中。

Fragment1中:​

String data;

//省略对data封装寄set和get的代码

​MainActivity的onCreate方法中:

​Fragment fragment=

getFragmentManager().findFragmentById(R.id.fragment1);

Fragment1 fragment1 =(Fragment1)fragment;​

fragment.setData("Enjoy coding!");​

在Fragment1中点击按钮,将data值显示在TextView中:

button.setOnClickListener(new

OnClickListener(){

textView.setText(getData());

})​;

由上可见,Fragment动态添加和静态添加传递数据的所写的代码是不同的。

静态注册fragment_Fragment的静态和动态添加方式以及Fragment和Activity之间的通信方式...相关推荐

  1. ViewPager动态添加、删除Fragment,且提供红色小圆球指示当前位置

    简单的说,代码要实现的是类似于现在通用新闻客户端头部的新闻图片展示.现在的新闻客户端顶部一般放有图片展示区,假设有5张图片,用户可以左右侧滑翻阅,同时提供一行5个红色小圆球(红色小圆球的个数等于图片数 ...

  2. 实现Android 动态载入APK(Fragment or Activity实现)

    尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38565345 近期由于项目太大了.导致编译通只是(Android对一个应用中的方法个数貌似有 ...

  3. Oracle Listener 动态注册 与 静态注册

    一.什么是注册 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. 在 ...

  4. oracle监听的动态注册和静态注册

    参考资料: https://blog.csdn.net/tianlesoftware/article/details/5543166 https://www.cnblogs.com/guilingya ...

  5. 【我的C语言学习进阶之旅】介绍一下NDK开发中关于JNI函数的两种注册方式:静态注册和动态注册

    目录 一.要介绍本篇博客的原因 二.静态注册 2.1 实现原理 2.2 实现过程 2.3 弊端 2.4 示例 三.动态注册 3.1 实现原理 3.2 实现过程 3.3 优点 3.4 示例 一.要介绍本 ...

  6. lsnrctl status区分静态注册与动态注册

    unknow:静态注册 ready或blocked:动态注册 a.如果先启动监听,后启动数据库 Service "PLSExtProc" has 1 instance(s).   ...

  7. Oracle监听的静态注册和动态注册

    静态注册:通过解析listene.ora文件 动态注册:由PMON进程动态注册至监听中 在没有listener.ora配置文件的情况下,如果启动监听,则监听为动态注册.用图形化netca创建的监听,默 ...

  8. 广播接收器动静态注册

    广播接收器可以自由地对自己感兴趣的广播进行注册,这样当有相应的广播发出时,广播接收器就能够收到该广播,并在内部处理相应的逻辑.注册广播的方式一般有两种,在代码中注册和在AndroidManifest. ...

  9. android listview动态添加viewpager,向 ViewPager 中添加 包含 ListView 的 Fragment

    对与fragment就不说什么了,直接看API手册吧,亲. 向 ViewPager 中添加 包含 ListView 的 Fragment 的过程比较麻烦.他所表现的效果就是新闻客户端的滑动翻页效果. ...

最新文章

  1. MySQL启动报:[ERROR] The server quit without updating
  2. cve-2018-7600 drupal核心远程代码执行漏洞分析
  3. npm 装包时的区别 -D -S
  4. promise存在的意义分析resolve reject catch
  5. azdb文件怎么打开_AZDBMappingSvcs.dll
  6. Cantor定理的一种好表述
  7. vue-router配置介绍和使用方法(三)
  8. android glide加载不出图片_Glide实现共享元素无缝转场效果,只需四步!
  9. ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序--解决方法
  10. python人脸识别防小偷_Python人脸识别
  11. jmeter学习指南之中文乱码
  12. 现代信号处理 张贤达_著名科学家、清华大学张贤达教授逝世,享年 74岁
  13. 整数规划_教学 | 线性(整数)规划的若干建模技巧
  14. TransCoder介绍
  15. Navicat 数据库可视化工具远程连接MySQL及基本操作
  16. 面试官:TCP和UDP两者的区别是什么?
  17. 超级计算机的生产流程,PCB生产工艺流程,你知道吗?
  18. solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
  19. PR(Premiere)安装插件Aescripts BeatEdit(Beat Edit)后无法打开的解决方案
  20. 实现360浏览器内核模式切换

热门文章

  1. 随想录(关于核心技术)
  2. 如何在yml中加上git用户名和密码的验证_使用Apollo升级一下yml文件管理和发布
  3. 4乘4方格走的路线_国庆自驾游,4条成都出发沿途美景大汇合自驾游路线推荐
  4. centos so查看_照片信息查看器app安卓下载-照片信息查看器app下载v1.1.0 安卓版
  5. java计算器问题反馈,Java开发网 - 求教计算器问题(急~~~)
  6. 实数集r用区间表示为_七大实数理论与互推
  7. 本地计算机无法启动,winxp系统下本地计算机无法启动Windows Time服务怎么办
  8. ctfshow-萌新-web8( 从删库到跑路)
  9. zabbix3.4配置钉钉机器人报警
  10. 格式化表单js插件jquery.serializeJSON