如何传递一个 class 对象以在另一个 activity 中使用 parcelable in bundle 接收其所有数据?
how to pass a class object to receive all its data in another activity using parcelable in a bundle?
如何使用捆绑包中的 parcelable 传递一个 class 对象以在另一个 activity 中接收其所有数据?
public class BlogDetailVO extends BlogFeedVO implements Parcelable{
PhotoStoryVO mCoverPic;
List<PhotoStoryVO> mPhotoStories;
LocationVO mLocationVO;
public BlogDetailVO(String mId, String mName, String mDescription) {
super(mId, mName, mDescription);
}
protected BlogDetailVO(Parcel in) {
super(in);
mCoverPic = in.readParcelable(PhotoStoryVO.class.getClassLoader());
mPhotoStories = in.createTypedArrayList(PhotoStoryVO.CREATOR);
mLocationVO = in.readParcelable(LocationVO.class.getClassLoader());
}
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeParcelable(mCoverPic, flags);
dest.writeTypedList(mPhotoStories);
dest.writeParcelable(mLocationVO, flags);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<BlogDetailVO> CREATOR = new Creator<BlogDetailVO>() {
@Override
public BlogDetailVO createFromParcel(Parcel in) {
return new BlogDetailVO(in);
}
@Override
public BlogDetailVO[] newArray(int size) {
return new BlogDetailVO[size];
}
};
public PhotoStoryVO getmCoverPic() {
return mCoverPic;
}
public void setmCoverPic(PhotoStoryVO mCoverPic) {
this.mCoverPic = mCoverPic;
}
public List<PhotoStoryVO> getmPhotoStories() {
return mPhotoStories;
}
public void setmPhotoStories(List<PhotoStoryVO> mPhotoStories) {
this.mPhotoStories = mPhotoStories;
}
public LocationVO getmLocationVO() {
return mLocationVO;
}
public void setmLocationVO(LocationVO mLocationVO) {
this.mLocationVO = mLocationVO;
}
}
以上是我的 class,我想从中访问另一个 activity 中的数据,所以如何将它从这个 activity 打包发送到另一个以及如何接收它在另一个 activity?
正在调用 Activity
Intent intent = new Intent(fromClass.this,toClass.class).putExtra("blogDetailVOObj",blogDetailVOObj);
接收中Activity
BlogDetailVO blogDetailVO = getIntent().getExtras().getParcelable("blogDetailVOObj");
将 parcelableExtra 放入 activity :-
DataObject dataobject = new DataObject("key", "value");
Bundle bundle = new Bundle();
bundle.putParcelable("dataobject", dataobject);
startActivity(new Intent(this, DestinationActivity.class).putExtras(bundle));
在目的地 Activity:-
Bundle bundle = getIntent().getExtras();
if(bundle != null) {
DataObject dataObj = bundle.getParcelable("key");
}
如何使用捆绑包中的 parcelable 传递一个 class 对象以在另一个 activity 中接收其所有数据?
public class BlogDetailVO extends BlogFeedVO implements Parcelable{
PhotoStoryVO mCoverPic;
List<PhotoStoryVO> mPhotoStories;
LocationVO mLocationVO;
public BlogDetailVO(String mId, String mName, String mDescription) {
super(mId, mName, mDescription);
}
protected BlogDetailVO(Parcel in) {
super(in);
mCoverPic = in.readParcelable(PhotoStoryVO.class.getClassLoader());
mPhotoStories = in.createTypedArrayList(PhotoStoryVO.CREATOR);
mLocationVO = in.readParcelable(LocationVO.class.getClassLoader());
}
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeParcelable(mCoverPic, flags);
dest.writeTypedList(mPhotoStories);
dest.writeParcelable(mLocationVO, flags);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<BlogDetailVO> CREATOR = new Creator<BlogDetailVO>() {
@Override
public BlogDetailVO createFromParcel(Parcel in) {
return new BlogDetailVO(in);
}
@Override
public BlogDetailVO[] newArray(int size) {
return new BlogDetailVO[size];
}
};
public PhotoStoryVO getmCoverPic() {
return mCoverPic;
}
public void setmCoverPic(PhotoStoryVO mCoverPic) {
this.mCoverPic = mCoverPic;
}
public List<PhotoStoryVO> getmPhotoStories() {
return mPhotoStories;
}
public void setmPhotoStories(List<PhotoStoryVO> mPhotoStories) {
this.mPhotoStories = mPhotoStories;
}
public LocationVO getmLocationVO() {
return mLocationVO;
}
public void setmLocationVO(LocationVO mLocationVO) {
this.mLocationVO = mLocationVO;
}
}
以上是我的 class,我想从中访问另一个 activity 中的数据,所以如何将它从这个 activity 打包发送到另一个以及如何接收它在另一个 activity?
正在调用 Activity
Intent intent = new Intent(fromClass.this,toClass.class).putExtra("blogDetailVOObj",blogDetailVOObj);
接收中Activity
BlogDetailVO blogDetailVO = getIntent().getExtras().getParcelable("blogDetailVOObj");
将 parcelableExtra 放入 activity :-
DataObject dataobject = new DataObject("key", "value");
Bundle bundle = new Bundle();
bundle.putParcelable("dataobject", dataobject);
startActivity(new Intent(this, DestinationActivity.class).putExtras(bundle));
在目的地 Activity:-
Bundle bundle = getIntent().getExtras();
if(bundle != null) {
DataObject dataObj = bundle.getParcelable("key");
}