Android Intent传递类对象_安卓Activity之间数据传递
2014-08-19 12:38:56  By: shinyuu

今天在做安卓应用的时候、发现使用 Intant 传递数据已经不能满足我的需求了

所以就在找使用 Intent 传递对象的方法、经过在网络上查找、终于还是找到了

Android中Intent传递类对象提供了两种方式

一种是通过实现Serializable接口传递对象、一种是通过实现Parcelable接口传递对象

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


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


//实现Serializable接口的对象
Bundle.putSerializable(Key,Object);  
//实现Parcelable接口的对象
Bundle.putParcelable(Key, Object); 
以下以最常用的Serializable方式为例


下面是我自己在项目里面使用的一个对象、是封装的一张图片


public class BrowseCarData implements Serializable {
	
	private static final long serialVersionUID = 1L;
	public String mPid;
    public String mImageURL;
    public String mImageTime;
    public String mRemark;
    public ArrayList<BillDetailVoiceFile> mVoices;

    public BrowseCarData() {
    }

}

通过 Intent 将BrowseCarData 传递给另外一个 Activity


Bundle bundle = new Bundle();
bundle.putSerializable("BrowseCarData", browseCarData);
intent.putExtras(bundle);
startActivity(intent);
另外一个 Activity 接收



browseCarData = (BrowseCarData)intent.getSerializableExtra("BrowseCarData");
另外大家应该注意到了、我的BrowseCarData对象里面有一个字段是 ArrayListArrayList<BillDetailVoiceFile>


在我项目里面、这个是语音文件、下面是BillDetailVoiceFile 的代码


public class BillDetailVoiceFile implements Serializable{
	
	private static final long serialVersionUID = 1L;
    public String mPid;
    public String mRelatedType;
    public String mRelatedParentPid;
    public String mRelatedPid;
    public String mFilePath;
    public String mUploadUser;
    public String mUploadDate;
    public String mStatus;
    
    public BillDetailVoiceFile() {
	}
}
需要大家注意的是、如果类里面还引用了其它类、那么被引用的类也要Serializable 才可以


不然会抛java.lang.RuntimeException: Parcelable encountered IOException writing serializable object

原因是传递的Parcelable对象里面的对象也要Parcelable或者Serializable

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+