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脚本执行该存储过程并将增量数据导出 ...
随机推荐
- redis info详解
INFO 以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值. 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server 部分记 ...
- 【django之orm小练习】
作业1 创建单表Book表,要求字段: 1 主键 nid 2 书名 title 3 价格 price 4 出版日期 pubDate 5 出版社 publisher(普通字符串字段) class Boo ...
- javase学习小结一
输出格式: int num=12345; System.out.printf("%7d",number);输出结果为:空格空格12345 System.out.println(&q ...
- 为什么webstrom无法格式化代码?
用过webstrom的童鞋都知道格式化代码需要按快捷键:ctrl+Alt+L:可是我最近发现这个快捷键不管用,今天终于知道了原因, 是后台网易云音乐没有关,和网易云音乐的快捷键冲突了,就是这么神奇没办 ...
- ES6字符串
1.unicode表示法: alert("\u0061"); alert("\uD842\uDFB7"); alert("\u20BB7") ...
- 2018/1/19 Netty学习笔记(一)
这段时间学了好多好多东西,不过更多是细节和思想上的,比如分布式事物,二次提交,改善代码质量,还有一些看了一些源码什么的; 记录一下真正的技术学习,关于Netty的学习过程; 首先说Netty之前先说一 ...
- CA证书扫盲,https讲解。
很多关于CA证书的讲解. 1.什么是CA证书. 看过一些博客,写的比较形象具体. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有 ...
- c++多态性---虚函数
虚函数与纯虚函数的区别: 1.拥有虚函数的类可以声明对象,但拥有纯虚函数的类不可以声明对象(只能声明一个指针,并且不能给其分配内存),并且将这个类称为抽象类 特点: 1.虚函数是动态绑定的基础. 2. ...
- mongoDB高级查询$type4array使用解析
今天在使用mongoDB高级查询$type:符号 -- 4代指Array类型发现一个问题. $type符号: $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. 下面是mong ...
- jQuery中animate()方法用法实例
本文实例讲述了jQuery中animate()方法用法.分享给大家供大家参考.具体分析如下: 此方法用于创建自定义动画,并且能够规定动画执行时长.擦除效果.动画完成后还可以地触发一个回调函数. ani ...