Android程序中Acticity间传递数据
在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间传递数据的更多相关文章
- Android 开发中使用Intent传递数据的方法
Activity之间通过Intent传递值,支持基本数据类型和String对象及 它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.shor ...
- 开发 | 如何在微信小程序的页面间传递数据?
我们在之前发布过小程序页面传值方法的简单介绍,说明了在小程序开发中,两种常见的页面之间传值方法. 本期,知晓程序(微信号 zxcx0101)为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有 ...
- Android TabHost中Activity之间传递数据
例子1: TabHost tabhost = (TabHost) findViewById(android.R.id.tabhost); tabhost.setup(this.getLocalActi ...
- C#中使用SendMessage在进程间传递数据的实例
原文:C#中使用SendMessage在进程间传递数据的实例 1 新建解决方案SendMessageExample 在解决方案下面新建三个项目:CopyDataStruct,Receiver和Send ...
- 在微信小程序页面间传递数据总结
在微信小程序页面间传递数据 原文链接:https://www.jianshu.com/p/dae1bac5fc75 在开发微信小程序过程之中,遇到这么一些需要在微信小程序页面之间进行数据的传递的情况, ...
- Xamarin Android 中Acitvity如何传递数据
在xamarin android的开发中,activity传递数据非常常见,下面我也来记一下在android中activity之间传递数据的几种方式, Xamarin Android中Activity ...
- 小菜学习Winform(五)窗体间传递数据
前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...
- WinForm 窗体间传递数据
前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...
- Android消息传递之组件间传递消息
前言: 上篇学习总结了Android通过Handler消息机制实现了工作线程与UI线程之间的通信,今天来学习一下如何实现组件之间的通信.本文依然是为学习EventBus做铺垫,有对比才能进步,今天主要 ...
随机推荐
- MiniUi遇到的一个Bug或者说坑,以div里面的内容自适应高度
页面源码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...
- XXE白盒审计 PHP
XXE与XML注入的区别 https://www.cnblogs.com/websecurity-study/p/11348913.html XXE又分为内部实体和外部实体.我简单区分为内部实体就是自 ...
- Redis 笔记(三)—— LIST 常用命令
常用命令 命令 用例和描述 RPUSH RPUSH key value [value ...] —— 将一个或多个值推入列表的右端 LPUSH LPUSH key value [value ...] ...
- flask-url参数
flask-url参数 无约束(string)传参 from flask import Flask app = Flask(__name__) @app.route('/<id>') de ...
- Linux服务器架设篇,DNS服务器(一),基础知识
一.端口 DNS监听端口 注意: DNS通常是以UDP协议来进行数据传输协议的,但是若没有办法查询到完整的信息是.DNS的daemon是named,它会启动TCP和UDP的53端口,所以启用DSN服务 ...
- 总结关于Mac上使用MySQL一些常见的问题
Num 1. MySQL5.7导出数据时提示--secure-file-priv解决办法: 问题分析 在官方的文档中,对secure_file_priv进行了说明,它用于限制数据的导出. secur ...
- 搭建环境-git常见使用总结
Descripton:git 一.Git安装和本地用户全局配置 官网下载并且安装 查看是否安装成功win + R输入git,出现git命令指南,则安装成功 全局配置本地用户,在git Bash中进行下 ...
- 8.3 String 类的方法 使用分类
String类的判断功能.获取功能. * String类的判断功能: * boolean equals(Object obj):比较字符串的内容是否相同 * boolean equalsIgnoreC ...
- Python设计模式(4)-装饰模式
# coding=utf-8 # * 一般情况下,当一个基类写好之后,我们也许不愿意去改动,也不能改动,原因是# * 这样的在项目中用得比较久的基类,一旦改动,也许会影响其他功能模块,但是,# * 又 ...
- 奥卡姆剃刀原则在ERP项目的应用
一向崇信“奥卡姆剃刀原则”,如非必要,绝不新增. 在我所实施的项目中,自定义字段.自定义报表非常少.很极端的一个例子是,曾经有一家工厂,生产打印机的部件,产品百分之百外销. 在项目实施完成,成功上线后 ...