直接开正题,Intent传递值就是平常那些很简单的,接下来介绍传递 对象,和 对象数组

1 .intent 传递自定义的 对象 -

实体类继承  Serializable


public class AA implements Serializable{

	public String  a;
public String aa;
public String aaa; }

intent塞入数据端

				AA a = new AA();
a.a="a";
a.aa ="aa";
a.aaa = "aaa"; Intent in = new Intent().setClass(MainActivity.this, MainActivity1.class);
Bundle bu = new Bundle();
bu.putSerializable("enty", a);
in.putExtras(bu);
startActivity(in);

intent 接收数据端

 	AA a =(AA)this.getIntent().getExtras().getSerializable("enty");
System.out.println("a.a ="+ app.a);
System.out.println("a.aa ="+ app.aa);
System.out.println("a.aaa ="+ app.aaa);

实体类类继承  Parcelable(简单介绍一下:

1.什么是Parcelable ?

Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为“可打包的”了。

2.Parcelable 传递对象

Android序列化对象主要有两种方法:

1.1实现Serializable接口是JavaSE本身就支持的;

1.2实现Parcelable接口,Parcelable是Android特有的功能,效率比实现Serializable接口高,像用于Intent数据传递也都支持,而且还可以用在进程间通信(IPC),

除了基本类型外,只有实现了Parcelable接口的类才能被放入Parcel中。

)

Parcelable的接口的定义:

public interface Parcelable {
//内容描述接口
public int describeContents();
//写入接口函数,打包
public void writeToParcel(Parcel dest, int flags);
//1.读取接口,目的是要从Parcel中构造一个实现了Parcelable的类的实例处理。因为实现类在这里还是不可知的,所以需要用到模板的方式,继承类名通过模板参数传入。
//2.为了能够实现模板参数的传入,这里才定义CREATOR嵌入接口,有两个接口函数分别返回单个和多个继承类实例。
public interface Creator<T> {
public T createFromParcel(Parcel source);
public T[] newArray(int size);
}
public class AA implements Parcelable{

	public String  a;
public String aa;
public String aaa; @Override
public int describeContents() {
return 0;
} @Override
public void writeToParcel(Parcel parcel, int flags) {
//序列化对象,必须按照声明顺序
parcel.writeString(a);
parcel.writeString(aa);
parcel.writeString(aaa); }
//必须实现这个接口,它的作用是从 percel中读出来数据,顺序必须按照声明顺序
public static final Parcelable.Creator<AA> CREATOR = new Creator<AA>(){
@Override
public AA createFromParcel(Parcel source) {
AA app= new AA();
app.a = source.readString();
app.aa = source.readString();
app.aaa = source.readString();
return app;
}
@Override
public AA[] newArray(int size) {
return new AA[size];
} };
}

intent塞入数据端

	                        AA a = new AA();
a.a="a";
a.aa ="aa";
a.aaa = "aaa"; Intent in = new Intent().setClass(MainActivity.this, MainActivity1.class);
Bundle bu = new Bundle();
bu.putParcelable("enty", a);
in.putExtras(bu);
startActivity(in);

接收数据端

 // 可以这样app =(AA)this.getIntent().getParcelableExtra("enty");
//也可以这样写,上面的也是
app =(AA)this.getIntent().getExtras().getParcelable("enty");
System.out.println("a.a ="+ app.a);
System.out.println("a.aa ="+ app.aa);
System.out.println("a.aaa ="+ app.aaa);

2。 下来是 自定义对象 数组传递

实体类类继承  Parcelable

intent塞入数据端

                      List<AA> list_aa =new ArrayList<AA>();
AA a = new AA();
a.a="a";
a.aa ="aa";
a.aaa = "aaa"; AA a1 = new AA();
a1.a="a1";
a1.aa ="aa1";
a1.aaa = "aaa1"; list_aa.add(a);
list_aa.add(a1); Intent in = new Intent().setClass(MainActivity.this, MainActivity1.class);
Bundle bu = new Bundle();
bu.putParcelableArrayList("list", (ArrayList<? extends Parcelable>) list_aa); //---
in.putExtras(bu);
startActivity(in);

接收list数据端

List<AA> aa =this.getIntent().getExtras().getParcelableArrayList("list");

			for (AA aa2 : aa) {
System.out.println("list_a.a = "+ aa2.a);
System.out.println("list_a.aa = "+ aa2.aa);
System.out.println("list_a.aaa = "+ aa2.aaa);
System.out.println("================================="); }

关于 android Intent 传对象和对象数组的一些操作的更多相关文章

  1. Android Intent 基本使用及对象构成

    Intent基本使用 Intent可以理解为不同组件通信的媒介或者信使. Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcast. 具体方法如下表 ...

  2. android intent 传递list或者对象

    (转:http://www.cnblogs.com/lee0oo0/archive/2012/09/24/2699805.html) 方法一: 如果单纯的传递List<String> 或者 ...

  3. Android intent传递list或对象

    方法一: 如果单纯的传递List<String> 或者List<Integer>的话 就可以直接使用 Java代码 intent.putStringArrayListExtra ...

  4. android intent 传数据

    1. 基本数据类型 Intent intent = new Intent(); intent.setClass(activity1.this, activity2.class); //描述起点和目标 ...

  5. 在Android中通过Intent使用Bundle传递对象

    IntentBundle传递对象SerializableParcelable Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法.被传递的对象 ...

  6. intent传值传对象跳转

    intent传值传对象跳转 1.传值 //原activity中存入一个字段 intent = new Intent(From.this, To.class); intent.putExtra(&quo ...

  7. Intent之对象传递(Parcelable传递对象和对象集合)

    接着上一篇文章,以下我们讨论一下怎样利用Parcelable实现Intent之间对象的传递 一.实现对象传递 首先创建User.java实现Parcelable接口: package org.yayu ...

  8. android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口

    Parcelable,内存单位,跨进程使用,或者intent传递对象的时候使用.android中用Intent传数据,如果用传递的是一个对象,就将对象实现Parcelable接口,而不是将对象序列化. ...

  9. uniapp中拿到base64转blob对象,或base64转bytes字节数组,io操作写入字节流文件bytes

    1. uniAPP中拿到附件的base64如何操作,如word文件 /*** 实现思路:* 通过native.js的io操作创建文件,拿到平台绝对路径* 再通过原生类进行base64解码,拿到字节流b ...

随机推荐

  1. Android 常用代码大集合 [转]

    [Android]调用字符串资源的几种方法   字符串资源的定义 文件路径:res/values/strings.xml 字符串资源定义示例: <?xml version="1.0&q ...

  2. C# GridView弹出窗口新增行 删除行

    <%@ Page Language="C#" AutoEventWireup="true" EnableViewState="true" ...

  3. T-SQL查询:三值逻辑

    1. 三值逻辑:TRUE / FALSE / UNKNOWN 2. 一个缺失的值(NULL)和另一个值进行比较,逻辑结果是UNKNOWN UNKOWN:NULL > 42 / NULL = NU ...

  4. Sublime Text 增加CoffeeScript、Jade and Stylus syntax高亮

    切换到Sublime Text Packages 目录: Liunx系统: cd ~/Library/Application\ Support/Sublime\ Text\ /Packages win ...

  5. BZOJ 4016: [FJOI2014]最短路径树问题( 最短路 + 点分治 )

    先跑出最短路的图, 然后对于每个点按照序号从小到大访问孩子, 就可以搞出符合题目的树了. 然后就是经典的点分治做法了. 时间复杂度O(M log N + N log N) -------------- ...

  6. NodeJS + express访问html、css、JS等静态资源文件

    原先做前端开发时都是用XAMPP或LAMP,把HTML.CSS.JS等前端资源放到htdocs下,测试自己的前端代码,但有些不方便的地方是,在调用Ajax请求后无法模拟请求返回的数据,最近学了点Nod ...

  7. 关于RSA加密

    RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密. RSA的算法涉及三个参数,n.e1.e2. 其中,n是两个大质数p.q的积,n的二进制 ...

  8. 搞了一个独立博客,请各位光临pingworld.cn

    嘿嘿,每次在一个大网站上建立自己的博客后总是没有动力持续更新下去,回想其原因很大是因为没有一个自己的地盘,懒得维护!还有一个原因就是自己也没有什么干货值得跟大家分享. 随着工作的时日见长,有了各种各样 ...

  9. MySQL中用decimal的原因

    原因:float保存的值有可能是这个值的近似值,而不是这个值的真实值.如 0.1在二进制中是没有办法保存真实值的. 下面是例子: 第一步:建表: create table t2(x float,y d ...

  10. SQL Server Service Borker 1

    1.消息类型定义: 消息类型,是信息交换的模板.create message type message_type_name validattion = well_formed_xml; 2.约定定义: ...