1:Activity篇

1.1向Activity传值

关键点在于putExtra。如果传递类的话,记得类实现Serializable接口

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("param1", "data1");
intent.putExtra("param2", "data2");
startActivity(intent);

如果参数比较固定的话,我们可以考虑把传递参数写成一个静态方法,比如查看用户详情,参数固定就是用户实体。可以这样写

 private static final String PARAM_CONTACT_ENTITY = "zhexian.app.smartcall.contact.PARAM_CONTACT_ENTITY";

  public static void actionStart(Context context, ContactEntity entity) {
Intent intent = new Intent(context, ContactDetailActivity.class);
intent.putExtra(PARAM_CONTACT_ENTITY, entity);
context.startActivity(intent);
}

1.2 Activity获取参数

在SecondActivity,我们可以通过下面的代码,获取我们传递的用户实体参数。

getIntent().getSerializableExtra(PARAM_CONTACT_ENTITY);

2:Fragment篇

将Fragment添加到Activity上,目前常用的的有两种方式

1:直接把fragment标签写在布局xml上,通过name属性,来指定对应的fragment类。

2:使用FragmentManager动态替换fragment。

第一种方式比较少见,没法在fragment初始化时传递参数。但是我们可以传递给其托管的activity(参考1.1),然后fragment通过getActivity获取赋值好的参数。

第二种方式是比较常见的,也是我们接下来要说的。

2.1:向Fragment传值

这个代码就很简单了,我们通过IDE新建一个fragment的时候,如果勾选了创建静态工厂方法的话,ide会自动帮我们创建好模板,里面就包含了如何向该fragment传值。

比如我们新建了一个叫UserDetailFragment,其静态方法如下

    //参数名
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2"; //参数值
private String mParam1;
private String mParam2; public static UserDetailFragment newInstance(String param1, String param2) {
UserDetailFragment fragment = new UserDetailFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}

2.2:Fragment获取参数

在onCreate方法里面,如下:

  public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}

tips:如果是类、枚举的话,通过getArguments().getSerializable()获取哦!

【android】activity、fragment传值例子的更多相关文章

  1. [转]Android:Activity+Fragment及它们之间的数据交换(一)

    2014-05-18         来源:Android:Activity+Fragment及它们之间的数据交换(一)   简介: 为什么要用Fragment?使用Fragment可以在一个Acti ...

  2. Android:Activity+Fragment及它们之间的数据交换.

    Android:Activity+Fragment及它们之间的数据交换 关于Fragment与Fragment.Activity通信的四种方式 比较好一点的Activity+Fragment及它们之间 ...

  3. Android -- Activity,Fragment lifecycle

    Activity Lifecyce Fragment Lifecycle: 程序运行: 09-16 13:59:22.883 19022-19022/com.example.android.archi ...

  4. Android Activity间传值

    Android中不同的Activity之间的传值方式(Main为当前Activity,Login为目标Activity) 1.使用Intent Intent intent = new Intent(M ...

  5. Android笔记: fragment简单例子

    MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bun ...

  6. Android:Activity+Fragment及它们之间的数据交换(一)

    简单介绍: 为什么要用Fragment?使用Fragment能够在一个Activity中实现不同的界面. Fragment与Fragment之间的动画切换,远比Activity与Activity之间的 ...

  7. 【转】Android Activity/Fragment Lifecycle

    原文来自:http://stormzhang.github.io/android/2014/08/08/activity-fragment-lifecycle/ 说Activity和Fragment是 ...

  8. Android activity之间传值关键性代码

    从当前activity中获取et 表单中的值,并跳转到myactivity.java所绑定的xml布局文件上. private EditText et; Intent intent=new Inten ...

  9. activity fragment 传值

    Bundle bundle = new Bundle(); bundle.putString("key","value"); fragment.setArgum ...

随机推荐

  1. 编程之美 set 11 买书问题

    题目 书店搞促销, 同时购买多卷书时, 有机会享受优惠 2本优惠 5%, 3本 10%, 4 本 20% 5 本 25% 设计算法, 求解购买一本书的最低价格 分析 1. 第一个感觉是一次购买的越多省 ...

  2. C语言while语句

    在C语言中,共有三大常用的程序结构: 顺序结构:代码从前往后执行,没有任何“拐弯抹角”: 选择结构:也叫分支结构,重点要掌握 if else.switch 以及条件运算符: 循环结构:重复执行同一段代 ...

  3. Spring学习笔记 7.1 Spring MVC起步

    7.1.1 跟踪Spring MVC的请求请求首先到达DispatcherServlet(DispatcherServlet是Spring MVC中的前端控制器):DispatcherServlet的 ...

  4. eq与gt的妙用

    应用到jq中: 一.jquery  :gt选择器: 定义:   :gt 选择器选取 index 值高于指定数的元素. 语法:$(":gt(index)") ex:$("l ...

  5. HDU 5900 QSC and Master

    题目链接:传送门 题目大意:长度为n的key数组与value数组,若相邻的key互斥,则可以删去这两个数同时获得对应的两 个value值,问最多能获得多少 题目思路:区间DP 闲谈: 这个题一开始没有 ...

  6. node.js创建server服务---sublime 的node及typescript环境配置

    一.初始环境搭建 mkdir server //创建server文件夹 cd server //进入到创建的文件夹目录下 npm init -y //生成含有默认配置的package.json文件 n ...

  7. 利用CSS3制作淡入淡出动画效果

    CSS3新增动画属性“@-webkit-keyframes”,从字面就可以看出其含义——关键帧,这与Flash中的含义一致. 利用CSS3制作动画效果其原理与Flash一样,我们需要定义关键帧处的状态 ...

  8. html 事件处理程序中的代码在执行时,有权访问全局作用域中的任何代码。

    看一个简单的例子: html: <head> <meta charset="UTF-8"> <title>Document</title& ...

  9. 阿里云服务器Mysql修改密码

    核心架构基于阿里云服务器CentOS7.2操作系统,全面支持Java Web运行环境   Tomcat 8.5.8 JDK 8u111 MySQL5.7.16 详细信息,请在服务器执行  more r ...

  10. Android 满屏显示自定义的View,并进行移动

    新建一个类,继承View package com.topcrab.mygame; import android.content.Context; import android.graphics.Bit ...