在Android开发过程中,在不同的Acitivity之间传递数据的情况是非常常见的。我花费了一点时间来总结Acitivity之间的数据传递,记录下来。

  1、简单传递键值对

  这种传递方式非常简单,只需要在构造Intent加入相应的键值对。

  在ActivityA中,调用Intent的代码如下:

 Intent i = new Intent(ActivityA.this,ActivityB.class);
i.putExtra("name", "Finlay Liu");
i.putExtra("age", "19");
startActivity(i);

  在ActivityB中,可以直接更加相应的键值对读取即可。

 String s = getIntent().getStringExtra("name") + " : " + getIntent().getStringExtra("age");
Toast.makeText(this, s, Toast.LENGTH_SHORT).show();

  2、传递对象

  在不同的Acitivity之间传递对象,也是一种非常常见的做法。之前没有仔细阅读Android开发文档,所以之前我在写Android代码的时候,不同Acitivity之间对象传递是通过静态类来实现的。起始在Activity间传递对象也非常简单,与上面的传递键值对方法类似。

  首先是对需要传递的类加上序列化接口:

 package com.finlayliu.passingobject;

 import java.io.Serializable;

 public class Person implements Serializable {

     private static final long serialVersionUID = 1L;

     public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(short age) {
this.age = age;
} private int id;
private String name;
private int age; public Person() { } public Person(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age; } public String toString() {
return id + ":" + this.name + ":" + age;
}
}

Person 类

  在ActivityA中,调用Intent的代码如下:

 Intent i = new Intent(MainActivity.this, OtherActivity.class);
Person p = new Person(1, "Finaly Liu", 19);
i.putExtra("Person", p); startActivity(i);

  在ActivityB中,读取相应的对象代码如下:

 Person p = (Person) getIntent().getSerializableExtra("Person");
Toast.makeText(getApplicationContext(), p.toString(), Toast.LENGTH_LONG).show();

Android程序中Acticity间传递数据的更多相关文章

  1. Android 开发中使用Intent传递数据的方法

    Activity之间通过Intent传递值,支持基本数据类型和String对象及 它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.shor ...

  2. 开发 | 如何在微信小程序的页面间传递数据?

    我们在之前发布过小程序页面传值方法的简单介绍,说明了在小程序开发中,两种常见的页面之间传值方法. 本期,知晓程序(微信号 zxcx0101)为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有 ...

  3. Android TabHost中Activity之间传递数据

    例子1: TabHost tabhost = (TabHost) findViewById(android.R.id.tabhost); tabhost.setup(this.getLocalActi ...

  4. C#中使用SendMessage在进程间传递数据的实例

    原文:C#中使用SendMessage在进程间传递数据的实例 1 新建解决方案SendMessageExample 在解决方案下面新建三个项目:CopyDataStruct,Receiver和Send ...

  5. 在微信小程序页面间传递数据总结

    在微信小程序页面间传递数据 原文链接:https://www.jianshu.com/p/dae1bac5fc75 在开发微信小程序过程之中,遇到这么一些需要在微信小程序页面之间进行数据的传递的情况, ...

  6. Xamarin Android 中Acitvity如何传递数据

    在xamarin android的开发中,activity传递数据非常常见,下面我也来记一下在android中activity之间传递数据的几种方式, Xamarin Android中Activity ...

  7. 小菜学习Winform(五)窗体间传递数据

    前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...

  8. WinForm 窗体间传递数据

    前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...

  9. Android消息传递之组件间传递消息

    前言: 上篇学习总结了Android通过Handler消息机制实现了工作线程与UI线程之间的通信,今天来学习一下如何实现组件之间的通信.本文依然是为学习EventBus做铺垫,有对比才能进步,今天主要 ...

随机推荐

  1. 还不懂 ConcurrentHashMap ?这份源码分析了解一下

    上一篇文章介绍了 HashMap 源码,反响不错,也有很多同学发表了自己的观点,这次又来了,这次是 ConcurrentHashMap 了,作为线程安全的HashMap ,它的使用频率也是很高.那么它 ...

  2. STM32CubeMX的安装

    1.下载STM32CubeMX 在ST的官方网站上下载STM32CubeMXXX软件的安装包. 下载的安装包如下图所示.双击SetupSTM32CubeMX-5.0.1.exe. 安装STM32Cub ...

  3. 关于git你日常工作中会用到的一些东西

    前言 git是一个版本控制工具, 版本控制主要的好处有三点: 从当前版本回退到任意版本 查看历史版本 对比两个版本差异 git 相关术语 repository 仓库 branch 分支 summary ...

  4. PTA数据结构与算法题目集(中文) 7-14

    PTA数据结构与算法题目集(中文)  7-14 7-14 电话聊天狂人 (25 分)   给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤),为通话记录 ...

  5. JavaScript布尔操作符

    布尔操作符 逻辑与 (&&) 逻辑与操作可以应用于任何类型的操作数,当有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值 如果第一个操作数是对象,则返回第二个操作数 如果第二 ...

  6. ELK 是什么?

                                                                         ELK 是什么? 2018年07月04月  09:37:46 ...

  7. 安装一个KVM服务器

                                                              安装一个KVM服务器     案例1:安装一个KVM服务器 案例2:KVM平台构建及 ...

  8. Java中toString()与new String()

    Java中toString()与new String(): 1.错误演示: FileInputStream fileIn = new FileInputStream(filePath);byte[] ...

  9. Java第二十天,Map集合(接口)

    Map接口 一.定义 Map集合是双列集合,即一个元素包含两个值(一个key,一个value),Collection集合是单列集合. 定义格式: public interface Map<K,V ...

  10. winform怎么实现财务上凭证录入和打印

    序言 现如今存在的财务软件层出不穷,怎么样让自己的业务系统与财务系统相结合,往往是很多公司头痛的问题.大多数公司也没有这个能力都去开发一套属于自己的财务软件,所以只有对接像金蝶用友这类的财务软件,花费 ...