转载请注明:http://www.cnblogs.com/igoslly/p/6911165.html

由于最近废寝忘食地在开发App,没来得及及时做总结,没有用很高级的部件,勉强也使用一些功能完成了自己的第一个App,撒花~~~

接下来都是自己在开发中使用后的一些经验,也是和他人学习实践后的成果,主要是关于Fragment。

使用Fragment传递

添加Fragment

     添加 Fragment 有静态添加 & 动态添加两种方式,
静态添加是在 Layout 布局中添加 <Fragment> 控件,由于可以设置 id,则可通过 id 寻找
<Fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment1"/>

    动态添加fragment则完全在程序中定义添加
添加同时设定 TAG,通过 TAG 寻找实例(见后 Transaction)
// 对activity中的Fragment进行管理,需要通过Fragment Manager
FragmentManager manager = getFragmentManager();
manager.findFragmentById(); //根据ID查找
manager.findFragmentByTag();//根据TAG查找
manager.getFragments();//获取所有被ADD进Activity中的Fragment

 


Fragment Manager & Transaction

FragmentManager
,获取当前Activity的所有Fragment,形成fragment栈
FragmentTransaction,则可以管理当前的Fragment
Transcation 控制 Fragment 的显示、添加、替换等等,如 add / remove / replace
commit() 对操作的 Fragemnt 提交到系统,进行显示
replace(R.id.content_frame,fragment).commit();  //替换——删除添加操作
add(R.id.container,fragment1,String tag); //添加fragment,并设置动态查找TAG
remove(fragment1); //删除
      故而 Fragment 常被用于导航栏的切换内容,每点击导航栏不同图标,系统便调用响应的 Fragment 布局和内容,较为方便



Activity或Fragment向Fragment之间的参数传递

Bundle args = new Bundle();
args.put("value_key",value);

value_key 是在传输读取中约定的关键词,传输值可以为多种类型,int,String,Array等等
Fragment fragment = new Fragment();
fragment.setArguments(args); //将bundle传给fragment

fragment 读取值
red = getArguments().getInt("value_key1");
yellow = getArguments().getString("value_key2");

当需要从 Fragment 返回原活动时,需要设置 fragment 连接

aheadDialogue.setTargetFragment(CompetitionFragment.this,REQUEST_CODE);
getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment1).addToBackStack(null).commit();
getFragmentManager().popBackStack(); //返回
 
原Fragment接收返回值,在onActivityResult进行定义
request_code 是用户自定义 integer
resultCode 通常是活动状况,是否正常结束

public void onActivityResult(int requestCode, int resultCode, Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// 可判断不同requestCode接受不同返回值操作
if (requestCode==0x1001) {
if (resultCode != Activity.RESULT_OK) { //这里再对activity状态进行判断
return;
} else {
hitPlayer = data.getStringExtra("hitplayer");
hitNumber = data.getIntExtra("hitnumber", 0);
}
}
if (requestCode==0x1111) {
//blablabla
}
}

推荐介绍Fragment挺详细的blog:http://blog.csdn.net/harvic880925/article/details/44927375

本笔记内容均为个人学习整理,转载请注明博客园-igoslly

Android开发笔记(10)——使用Fragment传递的更多相关文章

  1. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  2. 【转】Android开发笔记(序)写在前面的目录

    原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...

  3. Android开发笔记——以Volley图片加载、缓存、请求及展示为例理解Volley架构设计

    Volley是由Google开源的.用于Android平台上的网络通信库.Volley通过优化Android的网络请求流程,形成了以Request-RequestQueue-Response为主线的网 ...

  4. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...

  5. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》——(7)、示例代码arcgis-runtime-samples-android的使用

    1.前言 学习ArcGIS Runtime SDK开发,其实最推荐的学习方式是直接看官方的教程.示例代码和帮助文档,因为官方的示例一般来说都是目前技术最新,也是最详尽的.对于ArcGIS Runtim ...

  7. Android开发笔记:打包数据库

    对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...

  8. Android开发笔记--hello world 和目录结构

    原文:Android开发笔记--hello world 和目录结构 每接触一个新东西 都有一个hello world的例子. 1.新建项目 2.配置AVD AVD 没有要新建个,如果不能创建 运行SD ...

  9. [APP] Android 开发笔记 003-使用Ant Release 打包与keystore加密说明

    接上节 [APP] Android 开发笔记 002 5. 使用ant release 打包 1)制作 密钥文件 release.keystore (*.keystore) keytool -genk ...

  10. [APP] Android 开发笔记 002-命令行创建默认项目结构说明

    接上节:[APP] Android 开发笔记 001 4. 默认项目结构说明: 这里我使用Sublime Text 进行加载.

随机推荐

  1. 03.requests模块(1)

    目录 03.requests模块(1) 展开requests模块的学习 代码实例 需求:爬取搜狗指定词条搜索后的页面数据 需求:登录豆瓣电影,爬取登录成功后的页面数据 需求:爬取豆瓣电影分类排行榜 h ...

  2. vue 中全局filter过滤器的配置及使用

    在项目中使用到的经常用到过滤器,比如时间,数据截取等过滤器,如果在每个.vue中都可以复制同一个过滤器,这可以达到目的,但是遇到方法有bug时就需要诸葛修改进入不同的页面修改,这样既费时又费力,优先可 ...

  3. docker的容器可视化工具portainer

    1.搜索镜像 [root@holly ~]# docker search portainer 2.下载portainer [root@holly ~]# docker pull portainer/p ...

  4. vim学习2-文档编辑

    一.vim重复命令 1.重复执行上次命令 在普通模式下.(小数点)表示重复上一次的命令操作 拷贝测试文件到本地目录 $ cp /etc/protocols . 打开文件进行编辑 $ vim proto ...

  5. 单层gmetad高可用

    虽然gmetad可以多层,但是层层gmetad都需要开启gweb,还是很麻烦.如果只是担心一个gmetad不安全,可以做成gmetad高可用,但是我还不知道有没有想hadoop ha那样自动failo ...

  6. Flume基本概念

    1         Apache Flume 1.1         概述 Flume是Cloudera提供的一个高可用,高可靠的,分布式的海量日志采集.聚合和传输的软件. Flume的核心是把数据从 ...

  7. [bzoj2467][中山市选2010]生成树_快速幂

    生成树 bzoj-2467 中山市选2010 题目大意:题目链接 注释:略. 想法:首先,考虑生成树的性质.每两个点之间有且只有一条路径.我们将每个五边形的5条边分为外面的4条边和内部的一条边,在此简 ...

  8. cogs 315. [POJ3255] 地砖RoadBlocks

    315. [POJ3255] 地砖RoadBlocks ★★★   输入文件:block.in   输出文件:block.out   简单对比时间限制:1 s   内存限制:128 MB Descri ...

  9. Windows与VBox虚拟机共享目录的方法

    前言 安装完虚拟机,设置共享目录的时候碰到问题,网上搜索了一下,按照相关教程操作还是有问题,可能是写的不够清楚,于是按照自己的理解重写了一份,力求简单明了,理解轻松. 具体步骤 1.关闭虚拟机(如果未 ...

  10. android 音乐播放器总结

    学习从模仿開始 一个星期完毕的音乐播放器基本功能,具有下一首,上一首,暂停和随机.顺序和单曲等播放.以及保存上一次播放的状态,缺少了歌词显示功能.使用了andbase框架的欢迎动画和界面title. ...