Android:通过Intent在两个Activity之间传递对象(Parcelable)
来源:互联网 发布:QQ密正数据 编辑:程序博客网 时间:2024/04/29 14:42
本文介绍如何通过Intent来实现两个组件之间传递对象。
我们采用的方法是将对象进行序列化设计,这里采用Parcelable而非Seializable。
当然对于不是很复杂的对象,可以分解其成员分别传递。
这里不讨论其优劣,详细需要采用这种方案时肯定是已经有所研究比较。
1. 首先对需要序列化的类继承自Parcelabe,实现其必要的几个方法和CREATOR静态成员:
@Overridepublic void writeToParcel(Parcel dest, int flags)
public static final Parcelable.Creator<CommunityComment> CREATOR
read和write Parcel的顺序是一致的。
import android.os.Parcel;import android.os.Parcelable;public class CommunityComment implements Parcelable {private String commentId;private String uid;private String parentId;private int likeCount;private String createdTime;private String content;private int replyCount;private String communityId;private String imageUrl;private String imageType;public CommunityComment() {}public CommunityComment(final String commentId, final String content) {this.commentId = commentId;this.content = content;}public CommunityComment(Parcel in) {// TODO Auto-generated constructor stubthis.commentId = in.readString();this.uid = in.readString();this.parentId = in.readString();this.likeCount = in.readInt();this.createdTime = in.readString();this.content = in.readString();this.replyCount = in.readInt();this.communityId = in.readString();this.imageUrl = in.readString();this.imageType = in.readString();}public String getCommentId() {return commentId;}public void setCommentId(String commentId) {this.commentId = commentId;}public String getUid() {return uid;}public void setUid(String uid) {this.uid = uid;}public String getParentId() {return parentId;}public void setParentId(String parentId) {this.parentId = parentId;}public int getLikeCount() {return likeCount;}public void setLikeCount(int likeCount) {this.likeCount = likeCount;}public String getCreatedTime() {return createdTime;}public void setCreatedTime(String createdTime) {this.createdTime = createdTime;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public int getReplyCount() {return replyCount;}public void setReplyCount(int replyCount) {this.replyCount = replyCount;}public String getCommunityId() {return communityId;}public void setCommunityId(String communityId) {this.communityId = communityId;}public String getImageUrl() {return imageUrl;}public void setImageUrl(String imageUrl) {this.imageUrl = imageUrl;}public String getImageType() {return imageType;}public void setImageType(String imageType) {this.imageType = imageType;}@Overridepublic int describeContents() {// TODO Auto-generated method stubreturn 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {// TODO Auto-generated method stubdest.writeString(commentId);dest.writeString(uid);dest.writeString(parentId);dest.writeInt(likeCount);dest.writeString(createdTime);dest.writeString(content);dest.writeInt(replyCount);dest.writeString(communityId);dest.writeString(imageUrl);dest.writeString(imageType);}public static final Parcelable.Creator<CommunityComment> CREATOR = new Parcelable.Creator<CommunityComment>() {public CommunityComment createFromParcel(Parcel in) {return new CommunityComment(in);}public CommunityComment[] newArray(int size) {return new CommunityComment[size];}};}
2. 通过Intent发送对象(comment是需要传递的对象)
try {Intent intent = new Intent();intent.setClass(mContext,CommentDetailActivity.class);intent.putExtra(CommentDetailActivity.EXTRA_KEY_COMMENT,comment);mContext.startActivity(intent);} catch (Exception e) {e.printStackTrace();}
3.接收解析该对象
public static final String EXTRA_KEY_COMMENT = "commentobj";private CommunityComment mComment = null;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.commentdetail);if (getIntent() == null) {return;}mComment = getIntent().getExtras().getParcelable(EXTRA_KEY_COMMENT);}
- Android:通过Intent在两个Activity之间传递对象(Parcelable)
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable] .
- Android使用Intent在Activity之间传递对象[Serializable或者Parcelable]
- Android中Intent在Activity之间传递对象[Serializable或Parcelable]
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android Intent 在Activity 之间传递对象
- android中通过实现Parcelable来在两个页面之间传递对象的简单使用
- Activity之间通过Intent传递对象
- 通过intent、ClipboardManager在android不同activity之间传递数据
- Android:两个Activity之间通过Intent传值
- Android:两个Activity之间通过Intent传值
- Android Intent 之间传递对象之 Parcelable接口
- C++ 枚举类型的使用
- VC++(MFC)多线程编程
- 保护电脑系统时间不被修改
- KMeans biKMeans
- 计算机研究方向
- Android:通过Intent在两个Activity之间传递对象(Parcelable)
- 实例讲解连接sqlserver2000与2005 - sqljdbc.jar 驱动
- Poj 2828 Buy Tickets
- HDU4389:X mod f(x)(数位DP)
- TIOBE Programming Community Index for August 2013
- c++ string与数值类型(如int)相互转换
- 【数组排序】数组中字符按字母排序
- NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- android build