Android开发之Fragment
一、Fragment生命周期:
二、动态添加Fragment的三步:
1、获得Fragment的管理者FragmentManager
FragmentManager fragmentManager = getFragmentManager();
2、开启事务:
FragmentTransaction transaction = fragmentManager.beginTransaction();
3、提交事务:
transaction.commit();
下面是四个Fragment的切换:
public void onClick(View view) { //获得fragment的管理者 android.app.FragmentManager fragmentManager = getFragmentManager(); //开启事物 FragmentTransaction transaction = fragmentManager.beginTransaction(); switch (view.getId()){ case R.id.btn_wx:{//点击类微信 transaction.replace(R.id.ll,new WxFragment()); }break; case R.id.btn_contact:{//点击了联系人 transaction.replace(R.id.ll,new ContactFragment()); }break; case R.id.btn_discover:{//点击了发现 transaction.replace(R.id.ll,new DiscoverFragment()); }break; case R.id.btn_me:{//点击了me transaction.replace(R.id.ll,new MeFragment()); }break; default: break; } //最后一步,提交事物 transaction.commit(); }
以WxFragment为例:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //通过打气筒把一个布局转换成一个view对象 View view = inflater.inflate(R.layout.fragment_wx,null); return view; }
三、Fragment之间的通信:
已Fragment1修改Fragment2的TextView的值为例:
MainActivity:
android.app.FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.ll1,new Fragment1(),"f1"); transaction.replace(R.id.ll2,new Fragment2(),"f2"); transaction.commit();
Fragment1:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment1,null); view.findViewById(R.id.bnt).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //修改TextView的值 Fragment2 f2 = (Fragment2)getActivity().getFragmentManager().findFragmentByTag("f2");
//调Fragment2中的setText函数修改TextView的值 f2.setText("haha"); } }); return view; }
Fragment2:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment2,null); tv = (TextView) view.findViewById(R.id.tv); return view; } public void setText(String content){ tv.setText(content); }
ps:通过Tag可以得到Fragment2的实例,然后去修改值就行了。
Android开发之Fragment的更多相关文章
- android开发之Fragment加载到一个Activity中
Fragments 是android3.0以后添加的.主要是为了方便android平板端的开发.方便适应不同大小的屏幕.此代码是为了最简单的Fragment的使用,往一个Activity中添加Frag ...
- Android开发之Fragment的介绍、使用及生命周期
Fragment官网介绍-http://developer.android.com/guide/components/fragments.html 郭大神的使用实例文章:http://blog.csd ...
- Android开发之Fragment传递參数的几种方法
Fragment在Android3.0開始提供,而且在兼容包中也提供了Fragment特性的支持. Fragment的推出让我们编写和管理用户界面更快捷更方便了. 但当我们实例化自己定义Fragmen ...
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可 ...
- Android开发之Java集合类性能分析
对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的,目前主要提供了List.Set和 Map这三大类的集合,今天Android吧(ard8. ...
- Android开发之InstanceState详解
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
- Android开发之Git配置
Android开发之Git配置 1.首先git配置: 输入命令: git config --global user.name "xxx.xx" git config --globa ...
- 【Android UI】Android开发之View的几种布局方式及实践
引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理 ...
- Android开发之旅: Intents和Intent Filters(理论部分)
引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...
随机推荐
- Javascript parseFloat内部解析规则
这是由小习发的一个问题引起的讨论,结束后大家各自加深了多parseFloat的理解. 如下 16进制数0x10使用parseFloat转成数字,结果为0.潜意识期望的结果是16. 有人说脑残,16进制 ...
- centos---无线上网的电脑所安装的虚拟机网络设置
1.共享设置 找到本地的无线网卡,右键---属性---共享,设置如下 2.修改VMware Network Adapter VMnet1 选中VMware Network Adapter VMnet1 ...
- 移动端rem单位用法[转]
标签: 1.rem(font size of the root element)是指相对于根元素的字体大小的单位,em(font size of the element)是指相对于父元素的字体大小的单 ...
- windows下nodejs环境配置
一.下载 去nodejs下载node.msi安装文件包,里面包含了node.js和npm: 双击node.msi就行了,选择安装路径和npm: 二.设置环境变量 [新版本都不需要设计环境变量了,软件会 ...
- 安装rpm包
下载好一个rpm包怎样安装? [root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog jboss-as-7.1.1- ...
- USACO Sorting a Three-Valued Sequence
题目描述 排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2和3.我们用交换的方法把他排成升 ...
- 02章《深入C#数据类型》项目经理评分
一:创建MyOffices项目,创建UserInfo类,用来存储员工 工号,姓名,年龄,评价,年度得分 二:创建查看评分窗体(frmShow),添加定义员工数组,将员工数据绑定到frmShow窗体的L ...
- copy-paste component
http://www.cnblogs.com/wantnon/p/4579008.html
- UNITY在VS中调试
下载地址:https://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.Type=RootCategory&f%5B0 ...
- 第一天接触Orchard
第一天接触Orchard 为什么要研究Orchard 呢? 楼主是因为要研究下最新的ASP.NET技术, Orchard 用的人多,历史也比较久,算是老牌了 再就是中文资料比较多,Orchard 有中 ...