一起Talk Android吧(第四十九回:Android中的Fragment交互)
来源:互联网 发布:数据库join例子 编辑:程序博客网 时间:2024/05/22 00:30
各位看官们,大家好,上一回中咱们说的是Android中Fragment的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!
看官们,在前面的章回中我们对Fragment进行了详细的介绍,不过这些介绍都是以Activity与Fragment之间的交互为主。在接下来的章回中我们将介绍Fragment之间的交互。在今天的章回中我们先介绍一下嵌入在同一个Activity中的两个Fragment如何进行交互。
因为两个Fragment是嵌套在同一个Activity中的,它们之间可以看作是兄弟关系,而Activity可以看作是它们的家长,两个兄弟之间有矛盾了,家长肯定会出来调解的,先来威严的一声吼:你们两个熊孩子要做什么!接下来是就各种调解了,进行调解后的的两“兄弟”又和好如初了。哈哈,现实生活中如此,在Android中也是这样,这两个兄弟Fragment之间的交互也是基于家长“Activity”的,它们之间需要交互的时候,先是找到Activity,然后通过Activity找到另外一个Fragment,这样就可以进行交互了。经过这么比喻式的解释,大家是不是觉得Fragment之间的交互比较简单呢?是的,不过还是有觉得不够具体。这们看官说的对,接下来我们就通过代码来演示,这样会更加具体一些。
- 1.在同一个Activity中有两个Fragment,我们称它们为FragmentA和B。
<LinearLayout .../> //这是Activity的布局文件,省略了属性 <fragment //使用fragment标签以及它的name属性 android:id=@+id/fragmentA //这个不可少,它是Fragment的“身份证” android:name="packagename.FragmentA" //使用name属性来关联。赋值时使用包名.类名,这是静态加载Fragment。 .... //其它长度,宽度等大小属性省略不写 > <fragment //使用和FragmentA同样的方式加载FragmentB android:id=@+id/fragmentB android:name="packagename.FragmentB" .... > </LinearLayout>
- 2.在FragmentA的类中获取Activity,然后找到FragmentB。
这一步最关键:先是通过Fragment的getActivity方法找到Activity,然后通过Activity的getSupportFragmentManager方
法获取到FragmentManager,接着通过它的方法findFragmentById找到FragmentB。这是一个连续的“动作”。
public class FragmentA extends Fragment { private FragmentManager fm; private mActivity = getActivity(); //首先获取Activity private mFragmentB; if(mActivity != null) { fm = mActivity.getSupportFragmentManager(); //接着获取FragmentManager mFragmentB = (FragmentB)fm.findFragmentById(R.id.fragmentB); //最后通过FragmentManager找到FragmentB if(mFragmentB != null) mFragmentB.func(); //使用FragmentB中的方法,可以看作是FragmentA与FragmentB之间的交互 }}
看官们,上面的代码是介绍如何在FragmentA中与FragmentB进行交互的,在FragmentB中与FragmentA进行交互的方法完全一样,我就不做介绍了,希望大家自己动手来完成。
各位看官,关于Android中Fragment的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
- 一起Talk Android吧(第四十九回:Android中的Fragment交互)
- 一起Talk Android吧(第三十九回:Android中的Fragment四)
- 一起Talk Android吧(第四十四回:Android中的Fragment九)
- 一起Talk Android吧(第四十五回:Android中的Fragment十)
- 一起Talk Android吧(第四十六回:Android中的Fragment十一)
- 一起Talk Android吧(第四十七回:Android中的Fragment十二)
- 一起Talk Android吧(第四十八回:Android中的Fragment小结)
- 一起Talk Android吧(第五十三回:Android中的Fragment嵌套与交互小结)
- 一起Talk Android吧(第五十二回:Android中的Fragment交互续)
- 一起Talk Android吧(第四十三回:Android中的Fragment八-静态加载VS动态加载)
- 一起Talk Android吧(第二十九回:Android中的Activity一)
- 一起Talk Android吧(第三十六回:Android中的Fragment一)
- 一起Talk Android吧(第三十七回:Android中的Fragment二)
- 一起Talk Android吧(第三十八回:Android中的Fragment三)
- 一起Talk Android吧(第四十回:Android中的Fragment 五--stack)
- 一起Talk Android吧(第五十回:Android中的Fragment嵌套一)
- 一起Talk Android吧(第五十四回:Android中的Fragment显示与隐藏一)
- 一起Talk Android吧(第五十五回:Android中的Fragment显示与隐藏二)
- 3.5 Java-this关键字
- 完整删除Eclipse
- MVC模型 el jstl
- 栈的基本操作
- BZOJ 1057 棋盘制作 极大子矩阵(悬线法)
- 一起Talk Android吧(第四十九回:Android中的Fragment交互)
- Linux内核中实现保留内存的方法
- TCP与UDP的区别(转)
- http://www.cnblogs.com/breezedeus/archive/2012/04/10/2440488.html
- caffe FCN Ubuntu16.0
- Servlet 过滤器
- LUOGU P2058 海港题解(附代码)
- 【实战】(二)android模拟qq登录(apache的httpClient发送get和post请求)
- Cohen's kappa coefficient