Android开发——fragment中数据传递与刷新UI(更改控件)
数据传递:
1.通过数据库进行数据的传递
如在fragment中将数据保存在数据库中,之后其他的fragment或者activity直接读取数据库中的数据,数据库使用还算简单,这里就不多说,建议使用litepal,简单的不要不要的
2.通过Bundle实现两个fragment的数据传递
想必大家看到这里,想到的就是使用带参数的构造函数来实现数据的传递吧,我刚开始也是如此,但是,写上代码之后,发现有一个提示,就是建议不要使用此方法来实现数据传递
那我们怎么办呢?我们可以使用Bundle来实现
我们在fragment里面新建一个静态方法,其返回值为一个fragment类,其的参数就是代表的需要传递的数据
通过bundle的put将数据存放在bundle中,之后调用fragment的setArguments是fragment携带上Bundle
一个fragment最先开始就是会执行onCreate方法,所以我们在这方法来接收我们传递的数据
先是通过getArguments来获得fragment携带的Bundle,之后调用Bundle的get方法来获得数据,赋值给成员变量,图中isExist和personProperty均是私有全局成员变量
之后使用就是这样使用
PropertyFragment fragment = PropertyFragment.newInstance(personProperty,true);
刷新UI:
1.在fragment内部进行更改控件
在activity中,要想刷新UI,需要找到控件的实例,之后调用相关的方法更新UI
同样的,在fragment之后也是如此,不过有所不同的是, fragment只能在在onViewCreated方法中才能调用findviewbyid找到控件的实例
2.在activity中更改控件,需要找到fragment的实例,并且在fragment里面公开一个更改控件的方法
如果是使用静态方法(在xml使用name属性使用fragment),可以通过fragmentManger的findfragmentById或者是findfragmentByTag方法找到fragment的实例
如果是使用的动态方法(用java代码new一个fragment),那么就不用那么麻烦,可以直接调用fragment里面定义的那个公开的更改控件的方法
3.通过Activity作为中转,在另外一个fragment更改另外一个fragment的UI
Android开发——fragment中数据传递与刷新UI(更改控件)的更多相关文章
- Android开发系列(十八):自己定义控件样式在drawable目录下的XML实现
在Android开发的过程中,我们常常须要对控件的样式做一下改变,能够通过用添加背景图片的方式进行改变,可是背景图片放多了肯定会使得APK文件变的非常大. 我们能够用自己定义属性shape来实现. s ...
- android开发—Fragment中onCreateView()和onActivityCreated()的区别
在编写Fragment时,在onCreateView()方法中启动了一个初始化自定义View的方法 initView(),但是调试时就崩溃,打印日志发现是这里出了问题,就将这个方法放到了onActiv ...
- Android开发 Fragment中调用startActivityForResult返回错误的requestCode
返回错误的requestCode返回值为65537,在Fragment里调用startActivityForResult,就必须在Fragment里处理onActivityResult.
- Android 开发 Tip 17 -- 为什么getBackground().setAlpha(); 会影响别的控件?
转载请注明出处:http://blog.csdn.net/crazy1235/article/details/75670018 http://www.jb51.net/article/110035.h ...
- Android开发——Fragment的简单使用总结
前言: 之前搞项目的时候,就使用了这个Fragment,中间遇到了许多坑,把坑都解决了,现在写一篇较为简单的Fragment使用总结 Fragment的简单介绍: 简单来说,Fragment其实可以理 ...
- Android开发——Fragment知识整理(二)
0. 前言 Android开发中的Fragment的应用非常广泛,在Android开发--Fragment知识整理(一)中简单介绍了关于Fragment的生命周期,常用API,回退栈的应用等知识.这 ...
- Android开发——Fragment知识整理(一)
0. 前言 Fragment,顾名思义是片段的意思,可以把Fragment当成Activity的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成.Fragment需要被嵌 ...
- Android开发 定时任务清理数据
原文地址:Android开发 定时任务清理数据 | Stars-One的杂货小窝 公司项目,需要整定时任务,对数据进行清理,需要在每天凌晨0:00进行数据的清理,使用了Alarm和广播的方式来实现 P ...
- 利用shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中
现有需求:将oracle数据库中的数据准实时同步至某ftp服务器中,以便前端应用能定时从ftp服务器目录中取增量数据 方法:将加工脚本写为存储过程,然后利用shell脚本执行该存储过程并将增量数据导出 ...
随机推荐
- java数组基础
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- GTID复制详解
前言 GTID复制是MySQL 5.6后的新功能,在传统的方式里,主从切换后,需要找到binlog和POS点,然后执行命令change master to 指向新的主库.对于不是很有经验的人来说,往往 ...
- Centos7.0关闭防火墙
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 1.直接关闭防火墙 systemctl stop firewalld.service #关闭firew ...
- docker命令行学习
docker命令行学习 docker run docker run --help:老实说这条最管用了 docker run -it:交互模式,允许控制台输出 docker run -d:detach, ...
- node-glob的*匹配
目录结构 src/js/libs/app.js src/js/index.js 测试脚本 var glob = require('glob') glob('', {}, function (err, ...
- Trusted Execution Technology (TXT) --- 启动控制策略(LCP)篇
版权声明:本文为博主原创文章,未经博主允许不得转载.http://www.cnblogs.com/tsec/p/8428631.html 在TXT平台中,启动控制策略(Launch Control P ...
- ABP官方文档翻译 2.2 ABP会话
ABP会话 介绍 关于IAbpSession 注入会话 会话属性 覆盖当前会话值 警告! 用户标示 介绍 如果应用需要登录的话,同样也需要知道当前用户可以执行哪些操作.ABP在展现层提供了会话对象,同 ...
- 使用xUnit为.net core程序进行单元测试(3)
第1部分: http://www.cnblogs.com/cgzl/p/8283610.html 第2部分: http://www.cnblogs.com/cgzl/p/8287588.html 请使 ...
- SpringMVC源码情操陶冶-AnnotationDrivenBeanDefinitionParser注解解析器
mvc:annotation-driven节点的解析器,是springmvc的核心解析器 官方注释 Open Declaration org.springframework.web.servlet.c ...
- HDU3488 Tour [有向环覆盖 费用流]
Tour Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submis ...