android 通过 Intent 传递类对象

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

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

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

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

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

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

以下以最常用的Serializable方式为例 :

假设由登录界面(Login)跳转到主界面(MainActivity)传递的对象为登录的用户信息 User类

首先创建一个序列化类:User

复制代码
import java.io.Serializable;

public class User implements Serializable {
   private int ID;
    private String UserName;    
    private String PWD;    
    public final void setID(int value)
    {
        ID = value;
    }
    public final int getID()
    {
        return ID;
    }    
    public final void setUserName(String value)
    {
        UserName = value;
    }
    public final String getUserName()
    {
        return UserName;
    }  
    public final void setPWD(String value)
    {
        PWD = value;
    }

    public final String getPWD()
    {
        return PWD;
    }    
    
}
复制代码

登录窗体登录后传递内容

Intent intent = new Intent();
intent.setClass(Login.this, MainActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("user", user);
intent.putExtras(bundle);
this.startActivity(intent);

接收端

Intent intent = this.getIntent(); 
user=(User)intent.getSerializableExtra("user");

 以上就可以实现对象的传递。

补充:

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

 Intent.putExtras(key, (Serializable)list)  

接收

(List<YourObject>)getIntent().getSerializable(key)
基于紫光展锐平台的音频调用到hal层逻辑 基于紫光展锐平台的音频调用到hal层逻辑 1、数据流程图 AudioPolicyService和AudioFlinger的创建: 这两个服务都在audioserver中启动,文件路径: frameworks/av/media/audioserver/main_audioserver.cpp 从AudioFlinger和AudioPolicyService的创建,到output的打开,以及AudioFlinger开始往底层写入数据的具体流程如下图: #mermaid-svg-kjHL4XWwkQXN6NdA 阅读详情

相关推荐

CTF密码学奇技淫巧:当Base64遇到ROT13与Atbash

本文深入解析CTF竞赛中Base64、ROT13与Atbash的复合编码技术,提供Python实现与CyberChef可视化处理方案,帮助选手掌握密码学题目的解题技巧。通过NewStarCTF2025实战案例,对比脚本化与可视化工具的优劣,提升Web安全竞赛中的编码处理能力。

weixin_29001683的博客 483

Androidintent之间复杂参数的传递

老师在《Lecture03_应用程序框架及关键组件_1》课上有介绍了Intent是Activity与Activity之间,Activity与Service之间传递参数的介质,并有使用Intent和Bundle在组件之间传递数据的用法和例子,而这两种通常实现的是Java基本对象型和String的传递。 在实际项目中,页面之间传值,除了以上几种,经常还有传递Object对象、List型、Li...

weixin_33850015的博客 294

Android 12 大屏时底下显示任务栏以及虚拟按键靠右问题

Android 12 点大屏时,底下导航栏变成显示任务栏,虚拟按键靠右的分析以及修改

Android系统开发笔记 4650

Intent传递对象的三种方法

方法虽然十分简单,但是效率却不容乐观,因为它会把整个对象序列化,开销十分大,为了追求效率,我们不得不使用另一种方法,也就是。方法多了太多的实现代码了,有没有什么办法能改变这一现状呢?方法中,我们可以将我们想要的数据写入容器,如果是我们不需要的数据,那么我们可以放弃写入,这也是。容器中的数据读出来,用读出来的数据实例化一个对象,并且返回。接口的实现,这个接口中也需要我们实现两个方法。除了这两个方法以外,我们还需要创建一个。的数组并且返回,一般而言,直接返回。方法传递这个自定义对象了,在。,否则是无法使用的。

Rainman博的专栏 1331

通过Intent传递类对象

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34238633的博客 327

AndroidIntent传递Object和ArrayList<Object>对象---笔记

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

u012878236的专栏 566

Android中使用Intent传递Object和ArrayList<Object>对象和获取

序列化的两种方式,使用Serializable接口和parcelable serializable只需要bean继承serializable接口,而parcelable重写Parcelable接口中的两个方法和静态变量CREATOR. 传递一些基本型数据的方法如下: putExtra(String name, int value) putExtra(Stri

LightLu 2363

Android 通过 Intent 传递类对象

Android 开发笔记——通过 Intent 传递类对象 AndroidIntent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。 要求被传递对象必须实现上述2种接口中的一种才能通过Intent直接传递Intent传递这2种对象的方法: Bundle.putSerializabl

braddoris的专栏 446

Android怎么传递类对象,通过 Intent 传递类对象

通过 Intent 传递类对象AndroidIntent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。要求被传递对象必须实现上述2种接口中的一种才能通过Intent直接传递Intent传递这2种对象的方法:Bundle.putSerializable(Key,Object); //实现Serializable接...

weixin_35676504的博客 901

android 开发笔记——通过 Intent 传递类对象

AndroidIntent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。 要求被传递对象必须实现上述2种接口中的一种才能通过Intent直接传递Intent传递这2种对象的方法: Bundle.putSerializable(Key,Object); //实现Serializable接口的对象

codepython的专栏 423

Android Intent 传递类对象

AndroidIntent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。 要求被传递对象必须实现上述2种接口中的一种才能通过Intent直接传递Intent传递这2种对象的方法: Bundle.putSerializable(Key,Object); //实现Serializable接口的

320

android通过 Intent 传递类对象

AndroidIntent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。 要求被传递对象必须实现上述2种接口中的一种才能通过Intent直接传递Intent传递这2种对象的方法: Bundle.putSerializable(Key,Object); //实现Serializable接口的对象 ...

weixin_34306446的博客 76

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

http://www.cnblogs.com/shaocm/archive/2013/01/08/2851248.html AndroidIntent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。 要求被传递对象必须实现上述2种接口中的一种才能通过Intent直接传递Intent传递这2

tq471214251的专栏 312

Android :安卓学习笔记之 通过Intent传递类对象(实现Serializable和Parcelable接口)

通过Intent传递类对象Intent传递类对象1、实现Serializable接口传递对象2、通过实现Parcelable接口传递对象 Intent传递类对象 1、实现Serializable接口传递对象 Serializable 是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。至于序列化的方法也很简单,只需要让一个去实现Serializable 这个接口就可以了。 比如说有一个Person ,其中包含了name 和age 、id、se

JMW1407的博客 963

AndroidIntent传递类对象的方法二(Parcelable)

上一篇博客写到了通过Serializable方式实现序列化的方法,没有看过的可以点击AndroidIntent传递类对象的方法一(Serializable),现在我们接着介绍另一种序列化方式:AndroidIntent传递类对象的方法二(Parcelable),Parcelable也是一个接口,只要实现了这个接口,一个对象就可以实现序列化并通过Intent和Binder传递。 下面看一下实

Angelica 5769

android parcelable intent,AndroidIntent传递类对象的方法二(Parcelable)

上一篇博客写到了通过Serializable方式实现序列化的方法,没有看过的可以点击AndroidIntent传递类对象的方法一(Serializable),现在我们接着介绍另一种序列化方式:AndroidIntent传递类对象的方法二(Parcelable),Parcelable也是一个接口,只要实现了这个接口,一个对象就可以实现序列化并通过Intent和Binder传递。下面看一下实例...

weixin_42523552的博客 197

java intent 传递集合对象_AndroidIntent传递类对象的方法一(Serializable)

Activity之间通过Intent传递值,支持基本数据型和String对象及它们的数组对象byte、byte[]、char、char[]、boolean、boolean[]、short、short[]、int、int[]、long、long[]、float、float[]、double、double[]、String、String[]。还有实现了Serializable、Parcelable接...

weixin_39855843的博客 275
上一篇: ADB server didn't ACK 默认的ADB端口被占用之解决办法
下一篇: android 在xml布局文件中 ImageView ImageButton出现警告
静姝
博客等级 码龄13年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值