fragment 详解(三)

来源:互联网 发布:xampp apache正确方式 编辑:程序博客网 时间:2024/05/18 01:57

本篇文章继续上篇文章讲解的fragment,这篇文章的内容:activity与fragment的通讯,相互调用方法,在fragment中可以通过getActivity获得activity的实例,获得实例之后可以通过findViewById获得组件的id,然后进行你想要的操作,

而在activity中可以通过fragment事务来获取各个fragment,(如果事务处理不是很明白,可以参看我上面博客,那里有详细的介绍)获取fragment之后就可以轻松的获取fragment中的具体组件,然后做一些逻辑处理。


比如说此时有fragment A和fragment B,如果A需要传递值给B,两个进行相互通知,传值的操作,可以先把消息传递给activity,activity接受到消息之后然后再传递给fragment B,fragment B想传值给fragment A也是这样的操作,你或许会奇怪,为什么Fragment A和B之间就不能直接相互传递信息呢,干嘛非要通过activity呢,是的,这样是可以实现的,直接获取fragment的事务就可以获取任意的fragment ,传递信息自然不成问题,不过这并不提倡,官网的API也这样说,fragment的最大的优点就是复用性强,直接操作就没有复用性的优点了。

那么问题来了?fragment如何传递值给activity呢,fragment B又怎么样从activity中获取到信息呢?

官网上的介绍是在fragment中写一个借口,在activity实现此借口,利用这种方法进行传递参数,下面我们一步一步来实现:

首先先把UI图片展示出来,下图是一个activity,activity之中有两个fragment页面,分别是fragment A和fragment B

每个页面都有个一个button和一个textView,用来验证和提示信息,我们会给两个fragment中的button进行设置点击事件,然后进行利用点击事件进行传值,最底部的关卡一和关卡二分别控制fragment A和fragment B

先上传一下GIF效果图片,点击第一个fragment中的button按钮,在进入第二个fragment,并且Toast一个提示


UI部分的代码就不上传了    很简单现在我们直接进入正题上传在fragment A中的代码,

在fragment中定义一个借口,在onAttach进行强制转换,在xml中获取组件的id进行赋值,设立点击事件,最后在activity中重写接口的方法,进而操作方法,下面上传Activity的方法




代码链接::http://download.csdn.net/detail/qinggancha/9130735

0 0
原创粉丝点击