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
相关文章
- [PHP] laravel框架注意bootstrap/cache
- [日常] 小白来装机基本概念BIOS与硬盘分区
- [小程序]微信小程序获取位置展示地图并标注信息
- [小程序]微信小程序获取input并发送网络请求
- [小程序]微信小程序登陆并获取用户信息
- [小程序] 支付宝小程序使用list时提示元素不存在
- Android平台GB28181设备接入端PTZ指令对接详解
- [javascript] 支付宝小程序网络GET请求
- [android] 与PHP的session进行交互demo
- [android] post请求接口demo测试代码
- [android] 练习使用ListView(三)
- [android] 练习使用ListView(二)
- [android] 练习使用ListView(一)
- [android] 练习viewpagerindicator的使用(二)
- [日常] 小白来装机基本概念BIOS与硬盘分区
- [android] 两种异步方式
- [android] 通过比对进行容器联动
- [android] 实现返回键操作思路
- [android] 标题部分管理
- [android] socket在手机上的应用