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. TArray<uint8>转FString

    void ARamaUDPReceiver::Recv(const FArrayReaderPtr& ArrayReaderPtr, const FIPv4Endpoint& EndP ...

  2. kotlin正式由Goole公布为Android的最新开发语言

    那么,现在大家开发Android的话一般来说都是直接用Java,这个没错吧(高手除外).嗯,那么用力那么久的Java,不知道大家是否有想过Java的不足,已经很多可以优化的地方呢.当然,新修订的版本中 ...

  3. Android无线测试之—UiAutomator UiWatcher API介绍一

    UiWatcher类介绍与中断监听检查条件 一.UiWatcher类说明 1.Uiwatcher用于处理脚本执行过程中遇到非预想的步骤 2.UiWatcher使用场景 1)测试过程中来了一个电话 2) ...

  4. 如何使用phpmyadmin建立外键约束

    之前都是用sql语句进行的主外键的关联,现在用可视化的phpmyadmin感觉方便了很多,但是在做主外键约束的时候却十中找不到操作在哪里.网上搜索的也是千奇百怪五花八门的,都说的很晦涩,很多都说需要使 ...

  5. SaltStack自动化安装zabbix-server

    使用SaltStack自动化安装zabbix-server 1,设置ntp时间同步 2,安装zabbix-agent 3,安装zabbix-server 4,安装及配置mariadb(mariadb与 ...

  6. Android ImageView 获取图片信息后进行比较

    ImageView a=(ImageView)findViewById(R.id.imageView2); //获取当前图片ConstantState类对象 Drawable.ConstantStat ...

  7. qt model view 编程总结

    看不见的root的 QModelIndex() 是 无效的 list 和table 的index 函数中的parent参数就只要 root QModelIndex 就可以,因为没有层级概念 Model ...

  8. Put queue for MemoryTransaction of capacity 10000 full, consider committing more frequently, increasing capacity or increasing thread count flume capacity 时间数

    package com.test; import org.apache.http.*;import org.apache.http.entity.ContentType;import org.apac ...

  9. Macbook pro 13" Installs Ubuntu 18.04

    最新版的 MacBook对Ubuntu的支持(或者反过来?)不是很好,但是除了Suspend和resume功能没找到方法使用外,其他都还好,可用. 1.mac在OSX中先安装refind引导,如果开启 ...

  10. golang的指针和切片

    首先为什么要讲go的指针和切片放在一起? 因为go指针和切片都是引用类型 引用类型就是说切片和指针保存的只是内存的地址,而不是具体的值,效率在大数据读取方面效率会高很多. 1.怎么定义一个切片 方法1 ...