Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。

要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递

Intent中传递这2种对象的方法:

Bundle.putSerializable(Key,Object);  //实现Serializable接口的对象
Bundle.putParcelable(Key, Object); //实现Parcelable接口的对象

Person.java

package com.hust.bundletest;import java.io.Serializable;public class Person implements Serializable {String name;String password;String sex;public Person(String name, String password, String sex) {super();this.name = name;this.password = password;this.sex = sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}

注册窗体发送Intent的代码:

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn=(Button) findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//获得的三个组件EditText name=(EditText) findViewById(R.id.name);EditText password=(EditText) findViewById(R.id.password);RadioButton male=(RadioButton) findViewById(R.id.radio0);//判断是否被选String sex=(male.isChecked())?"男":"女";//封装成一个对象Person p=new Person(name.getText().toString(),password.getText().toString(),sex);//创建Bundle对象Bundle bundle=new Bundle();bundle.putSerializable("person", p);//Bundle中放一个对象//创建一个Intent对象Intent intent=new Intent(MainActivity.this,ResultActivity.class);intent.putExtras(bundle);//启动intent对应的ActivitystartActivity(intent);              }});

接收端的代码:

 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_result);//获取显示组件TextView name=(TextView) findViewById(R.id.text1);TextView password=(TextView) findViewById(R.id.text2);TextView sex=(TextView) findViewById(R.id.text3);//获取Intent对象Intent intent=getIntent();//从Intent对象中获取序列数据//Person p=(Person) intent.getSerializableExtra("person");相当于Bundle bundle=intent.getExtras();//获取Bundle对象Person p=(Person) bundle.getSerializable("person");//Bundle对象中获取可序列化对象name.setText(p.getName());password.setText(p.getPassword());sex.setText(p.getSex());}

以上就可以实现对象的传递。
如果传递的是List<Object>,可以把list强转成Serializable类型,而且object类型也必须实现了Serializable接口

Intent.putExtras(key, (Serializable)list) 
(List<YourObject>)getIntent().getSerializable(key)

通过 Intent 传递类对象相关推荐

  1. Android 开发笔记——通过 Intent 传递类对象

    Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种 ...

  2. 通过Intent传递类对象

    2019独角兽企业重金招聘Python工程师标准>>> 一.Intent是什么 1.定义 Intent被译作意图,其实还是很能传神的,Intent期望做到的,就是把实现者和调用者完全 ...

  3. Android Activity之间传递类对象

    一.简介 开发过程中,Activity之间传递数据是必不可少的,Android中使用Intent和Bundle作为数据载体,在Activity之间传递,对于基础数据类型,Bundle已经提供了相关的p ...

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

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

  5. java intent 传递集合对象_Intent之对象传递(Parcelable传递对象和对象集合)

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

  6. android studio访问webservice如何传递类对象报错_小白学习web service,这是最最最基础的了,只用JDK还不会吗?...

    Java Web Service实践 Web Service直接翻译就是网络服务. 主要为了解决各种语言,各种系统之间不兼容,通过SOAP(简单对象访问协议)实现互联互通. 其核心就是这个SOAP,通 ...

  7. Android Intent之传递带有对象的集合(Serializable传递对象和对象集合)

    Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种 ...

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

    Intent传递对象,有两种方法 1. 实现Serializable接口 类要生成序列化ID,并且不能是内部类 2. 实现Parcelable接口 参照Parcelable的doc文档 实现Seria ...

  9. 使用Intent传递对象

    以下介绍两种通过Intent传递自定义对象的方法. Serializable方式 Serializable的意思是序列化,序列化就是将一个对象转换成可存储或可传输的状态,这样就可以做到将该对象在网络上 ...

最新文章

  1. 使用docker制作hexo镜像
  2. swift4.0 try 的强大
  3. AJAX——AJAX请求递归
  4. 【WebRTC---源码篇】(一)全局初始化
  5. JDBC高级特性(一)结果集,批量更新
  6. box怎么用 latency_box-sizing使用场景
  7. hg255d php,HG255D刷潘多拉共享惠普1020打印机的问题汇总
  8. 你和财务自由之间,只差一个公式
  9. 微信小程序对商户而言到底有什么用?
  10. python3类c语言LL1文法编译器设计
  11. 4K屏配置keil分辨率和图标大小
  12. Android animation呼吸动画 心形动画
  13. 计算机管理没有本地用户和组控制面板,win10管理没有本地用户和组怎么办_win10电脑管理没有本地用户和组解决方法...
  14. java环境jdk配置
  15. css3的一些动画(代码及演示)
  16. 驱动及驱动开发的简单理解
  17. 从猪和鸡的故事看Scrum Master职责
  18. python 局域网广播_Python实现局域网内屏幕广播的技术要点分析
  19. 垃圾3D打印机Makerbot Replicator Z18 常见报错
  20. Pyspider 使用带认证redis集群作为消息队列

热门文章

  1. windows下钩子的使用
  2. STM32 SPI难点浅析
  3. 设置log缓存_带你搞明白什么是缓存穿透、缓存击穿、缓存雪崩
  4. C++ Primer 5th笔记(chap 15 OOP)抽象基类
  5. IDA无法反编译 and 提示错误
  6. 操作系统实验——简易FAT16文件系统的实现
  7. 程序设计中的几种设计原则
  8. [How TO]-Ubuntu 20.04修改终端标题栏文字
  9. optee对std smc的处理的详解
  10. 彻底明白TCP的三次握手与四次挥手