博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android组件动态接收数据库,Android开发——fragment中数据传递与刷新UI(更改控件)...
阅读量:1532 次
发布时间:2019-04-21

本文共 1050 字,大约阅读时间需要 3 分钟。

数据传递:

1.通过数据库进行数据的传递

如在fragment中将数据保存在数据库中,之后其他的fragment或者activity直接读取数据库中的数据,数据库使用还算简单,这里就不多说,建议使用litepal,简单的不要不要的

2.通过Bundle实现两个fragment的数据传递

想必大家看到这里,想到的就是使用带参数的构造函数来实现数据的传递吧,我刚开始也是如此,但是,写上代码之后,发现有一个提示,就是建议不要使用此方法来实现数据传递

那我们怎么办呢?我们可以使用Bundle来实现

我们在fragment里面新建一个静态方法,其返回值为一个fragment类,其的参数就是代表的需要传递的数据

通过bundle的put将数据存放在bundle中,之后调用fragment的setArguments是fragment携带上Bundle

7c255a5b649089c909de191d23e46c2a.png

一个fragment最先开始就是会执行onCreate方法,所以我们在这方法来接收我们传递的数据

先是通过getArguments来获得fragment携带的Bundle,之后调用Bundle的get方法来获得数据,赋值给成员变量,图中isExist和personProperty均是私有全局成员变量

9430738d3f6342e7d4c4417927e0ff0d.png

之后使用就是这样使用

PropertyFragment fragment = PropertyFragment.newInstance(personProperty,true);

刷新UI:

1.在fragment内部进行更改控件

在activity中,要想刷新UI,需要找到控件的实例,之后调用相关的方法更新UI

同样的,在fragment之后也是如此,不过有所不同的是, fragment只能在在onViewCreated方法中才能调用findviewbyid找到控件的实例

393769bf2101275db02680a6b8b19a8b.png

2.在activity中更改控件,需要找到fragment的实例,并且在fragment里面公开一个更改控件的方法

如果是使用静态方法(在xml使用name属性使用fragment),可以通过fragmentManger的findfragmentById或者是findfragmentByTag方法找到fragment的实例

如果是使用的动态方法(用java代码new一个fragment),那么就不用那么麻烦,可以直接调用fragment里面定义的那个公开的更改控件的方法

3.通过Activity作为中转,在另外一个fragment更改另外一个fragment的UI

792b3f13e79b5d8914c63ffeddc0ff82.png

转载地址:http://byudy.baihongyu.com/

你可能感兴趣的文章
[Erlang]List结构和性能分析
查看>>
erlang进程概念
查看>>
委托和事件的区别
查看>>
使用IntelliJ IDEA进行Erlang开发
查看>>
Erlang运行时的错误
查看>>
erlang进程间通信
查看>>
[Erlang]Ets并发读写详解
查看>>
ERLANG远端节点奔溃导致发消息进程堵消息问题探源
查看>>
对erlang:now()返回值的理解
查看>>
url组成部分详解
查看>>
Get和Post区别
查看>>
mochiweb源码分析(一)
查看>>
mochiweb源码分析(二)
查看>>
mochiweb源码分析(三)
查看>>
mochiweb源码分析(四)
查看>>
mochiweb源码分析(五)
查看>>
mochiweb源码分析(六)
查看>>
mochiweb源码分析(七)
查看>>
mochiweb源码分析(八)
查看>>
mochijson2和mochijson
查看>>