转载请注明: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. unigui菜单【3】

    unigui菜单TuniTreeView 根据数据库表中的内容,显示菜单的处理: function TMainForm.CreateMenu: Integer; var myMenuPoint : P ...

  2. 【codeforces 779E】Bitwise Formula

    [题目链接]:http://codeforces.com/contest/779/problem/E [题意] 给你n个长度为m的二进制数 (有一些是通过位运算操作两个数的形式给出); 然后有一个未知 ...

  3. Luogu P3740 [HAOI2014] 贴海报 线段树

    线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...

  4. cogs 290. [CTSC2000] 丘比特的烦恼

    290. [CTSC2000] 丘比特的烦恼 ★★★   输入文件:cupid.in   输出文件:cupid.out   简单对比时间限制:1 s   内存限制:128 MB 随着社会的不断发展,人 ...

  5. N天学习一个linux命令之kill

    用途 用于终止进程 用法 kill [-s signal|-p] [--] pid... kill -l [signal] 说明 1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对 ...

  6. JCE, Java Cryptography Extension

    JCE, Java Cryptography Extension Java 8 JCE下载地址: http://www.oracle.com/technetwork/java/javase/downl ...

  7. [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv

    Natural Neural Networks Google DeepMind又一神作 Projected Natural Gradient Descent algorithm (PRONG) bet ...

  8. Apache server配置

    Apacheserver在我们生活中非经常常使用 今天给大家将一下mac 下apache server的配置 这对程序来说是必备技能之中的一个,假设我们在公司开发都是用的公司的server 将自己的代 ...

  9. activeMQ公布订阅模式中中经常使用工具类

    package com.jms; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax.j ...

  10. linux下apache+openssl配置记录

    软件环境 Apache Httpd 2.2.29 (http://httpd.apache.org ) OpenSSL 1.0.1h (http://www.openssl.org/source ) ...