Intent传递对象,有两种方法

1. 实现Serializable接口

类要生成序列化ID,并且不能是内部类

2. 实现Parcelable接口

参照Parcelable的doc文档

实现Serializable接口的代码如下:

public class Person implements Serializable

{

private static final long serialVersionUID = -4520602519989894109L;

String name;

String age;

public Person(String name, String age)

{

super();

this.name = name;

this.age = age;

}

@Override

public String toString()

{

return "Person [name=" + name + ", age=" + age + "]";

}

}

从A启动B,通过intent传递person对象过去

private void startNewActivity()

{

Intent intent = new Intent();

intent.setClass(MainActivity.this, SecondActivity.class);

String name = etname.getText().toString();

String age = etage.getText().toString();

//用intent传递对象,那个类要实现序列化接口

Person person = new Person(name, age);

intent.putExtra(constant.PERSON, person);

startActivity(intent);

}

在B中得到A传过来的对象

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_second);

TextView textView = (TextView) findViewById(R.id.textView1);

Intent intent = getIntent();

Person person = (Person) intent.getSerializableExtra(constant.PERSON);

textView.setText(person.toString());

}

实现Parcelable接口的代码如下:

public class Person implements Parcelable

{

String name;

String age;

// 参照Parcelable的doc文档

public int describeContents()

{

return 0;

}

public void writeToParcel(Parcel out, int flags)

{

out.writeString(name);// 写跟下面的读顺序要一样

out.writeString(age);

}

public static final Parcelable.Creator CREATOR = new Parcelable.Creator()

{

public Person createFromParcel(Parcel in)

{

return new Person(in);

}

public Person[] newArray(int size)

{

return new Person[size];

}

};

public Person(String name, String age)

{

super();

this.name = name;

this.age = age;

}

public Person(Parcel in)

{

name = in.readString();// 读跟上面的写顺序要一样

age = in.readString();

}

@Override

public String toString()

{

return "Person [name=" + name + ", age=" + age + "]";

}

@Override

public int hashCode()

{

final int prime = 31;

int result = 1;

result = prime * result + ((age == null) ? 0 : age.hashCode());

result = prime * result + ((name == null) ? 0 : name.hashCode());

return result;

}

@Override

public boolean equals(Object obj)

{

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Person other = (Person) obj;

if (age == null)

{

if (other.age != null)

return false;

}

else if (!age.equals(other.age))

return false;

if (name == null)

{

if (other.name != null)

return false;

}

else if (!name.equals(other.name))

return false;

return true;

}

}

在B中得到从A传来的对象

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_second);

TextView textView = (TextView) findViewById(R.id.textView1);

Intent intent = getIntent();

Person person = (Person) intent.getParcelableExtra(constant.PERSON);

textView.setText(person.toString());

}

android 传递接口对象吗,android中Intent传递对象,需要实现Serializable接口或者Parcelable接口...相关推荐

  1. android集合方法,android中intent传递list或者对象的方法

    本文实例讲述了android中intent传递list或者对象的方法.分享给大家供大家参考.具体实现方法如下: 方法一: 如果单纯的传递List 或者List的话 就可以直接使用 代码如下: inte ...

  2. java intent 传递集合对象_Android系列之Intent传递对象的几种实例方法

    在Android中intent传递对象主要有2种方式分别是,Bundle.putSerializable(Key,Object)和Bundle.putParcelable(Key, Object);当 ...

  3. Android中Intent传递对象的两种方法(Serializable,Parcelable)

    这篇文章转自博客园 Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putPa ...

  4. android java 实体类 object变量 保存_Android中Intent传递对象的两种方法Serializable,Parcelable...

    Android中的传递有两个方法,一个是Serializable,另一个是Parcelable. Serializable是J2SE本身就支持的.而Parcelable是Android所特有的. 二者 ...

  5. Android中Intent传递Object和ArrayListObject对象---笔记

    首先看一下Intent的官方的API. 传递一些基本类型数据的方法如下: putExtra(String name, int value) putExtra(String name, String v ...

  6. Android 中intent传递序列化信息(传递类)

    Android 中不同activity之间传递信息 一般Android 中不同activity之间传递信息通过intent. 传递普通的信息,直接通过intent.putExtra()来实现. 通过上 ...

  7. jsp中的九大隐含对象和EL中的隐含对象

    JSP隐含对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐含对象也被称为预定义变量. JSP所支持的九大隐含对象: 对象 描述 request HttpSe ...

  8. python语言中一切皆对象_2 python 中一切皆对象

    python 中一皆对象 在 python 编程语言中所有的一切都是对象 , python 语言相对于 C++ 或 java 这样的语言 (静态语言), 面向对象这个思想更加的彻底. 2.1 函数和类 ...

  9. php 文件迭代对象,通过PHP中的stdClass对象进行迭代

    我有一个这样的对象: stdClass Object ( [_count] => 10 [_start] => 0 [_total] => 37 [values] => Arr ...

最新文章

  1. 工信部:今年将发放5G临时牌照,预计下半年5G手机投放市场
  2. 正式出「圈」丨网易云信圈组的近谋与远虑
  3. BZOJ 2668: [cqoi2012]交换棋子
  4. phpmyadmin能合并行吗_去二手车行当学徒真的能学到技术吗?过来人劝你要谨慎!...
  5. [信息安全] 1.密码工具箱
  6. 在Bootstrap框架中,form-control的效果
  7. python指定Gpu
  8. 谷歌用3亿张图做了个深度学习实验,结论:数据还是越大越好
  9. 【优化算法】蝴蝶优化算法(MBO)【含Matlab源码 952期】
  10. 【最新汇总】单细胞转录组分析与绘图系列
  11. 简历包装严重,作为面试官,我是如何甄别应聘者的包装程度
  12. JS端计算一段时间内工作日的天数,排除周末和法定节假日,同时考虑到调休日
  13. 中国计算机网络设备制造业总体趋势免费版,致自己的心灵鸡汤说说,句句经典,引人深思!...
  14. Inferring Motion Direction using Commodity Wi-Fi for Interactive Exergames (WiDrancd)论文翻译
  15. Jetson Agx Orin使用最正确的方式安装torch1.11.0,torchvision0.12.0,torchaudio0.11.0保姆级教程
  16. hdu 1548 A strange lift (BFS)
  17. 学计算机得肩周炎,电脑工作者更易患肩周炎 肩周炎的自我按摩方法
  18. 分布式计算框架Hadoop原理及架构全解
  19. 【收藏】清风算法后网站首页/列表页/内容页/主题聚合页标题格式
  20. 32位计算机中内存地址如何表示,内存地址是什么

热门文章

  1. 察颜观色保无忧—存储卡选购之四法则
  2. SWT中非UI线程更新UI的方法
  3. python怎样安装词云库_python词云库wordcloud的使用方法与实例详解
  4. 特斯拉三季度生产23.8万辆 交付超24万辆
  5. “您都对”、“客户都对”也能申请为商标?
  6. 现代起亚混合动力SUV全球销量突破50万辆
  7. 苹果A14芯片GeekBench跑分曝光:单核1583分 多核4198分
  8. 台积电2nm工艺有望2023年风险试产 次年大规模投产
  9. 最美旗舰机型又将易主?三星Galaxy S11高清渲染图曝光
  10. 林斌减持小米股份三天套现3.4亿引关注 小米官方、林斌齐回应...