Android中如何实现两个Activity中传递自定义数据

本文介绍如何在Android应用的不同活动(activity)间通过Bundle传递自定义类对象。利用putSerializable()方法实现序列化处理,确保自定义类实现了Serializable或Parcelable接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发中,本人遇到这样问题想在两个activity之间传递某个自定义类对象,但是使用Bundle发现里面只能传送已经封装好的int,float,String等类型,自定义的类无法发送。

后来上网查阅相关资料发现Bundle中有这两个方法putSerializable()和putLongArray()两个方法对自定义数据进行序列化即可实现所希望的功能。

需要注意的是你所传递的自定义数据必须implements Serializable或者Parcelable接口,可以用bundle putSerializable(String,Serizlizable)数据或者直接用intent putExtrr(String,Serizlizable)数据。如果该自定义数据里面嵌套了其他自定义数据类型,则必须都要implements Serializable或者Parcelable接口才行,不然会报错...


贴上部分源码:

	public void onItemClick(AdapterView<?> arg0, View arg1, int position,				long id) {			// TODO Auto-generated method stub					WeiboListItem single_info=weibolist.get(position);			Intent intent=new Intent(Test.this,Single_view.class);			Bundle mbundle=new Bundle();			mbundle.putSerializable("single_info", single_info);			intent.putExtras(mbundle);			//intent.putExtra("single_info", single_info);			startActivity(intent);

自定义数据:

public class WeiboListItem implements Serializable{//继承序列化的类主要是为了方便activity之间传递weiboInfo对象public static final long serialVersionUID = 1L;private String time;private String text;private String source;private String reposts_count;private String comments_count;private UserInfo user;

嵌套数据类型:

public class UserInfo implements Serializable {private static final long serialVersionUID = -609747215688061510L;private String id;//用户UIDprivate String screen_name;//昵称private String location;//所在地private String description;//描述private String avatar_large;//大头像private String verified_reason ;//认证原因private String gender;//性别

以上是用继承Serializable来实现的,至于继承Parcelable接口方法类似...



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值