大佬教程收集整理的这篇文章主要介绍了android – 将对象从一个活动传递给另一个时出错(使用Parcelable),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个班级,并将其命名为学生
package com.example.test08_passobjectoverintent; import android.os.Parcel; import android.os.Parcelable; public class student implements Parcelable { private String st_Acadimicnumber ; private String st_name ; private String st_Class ; public String getSt_Acadimicnumber() { return st_Acadimicnumber; } public void setSt_Acadimicnumber(String st_Acadimicnumber) { this.st_Acadimicnumber = st_Acadimicnumber; } public String getSt_name() { return st_name; } public void setSt_name(String st_name) { this.st_name = st_name; } public String getSt_Class() { return st_Class; } public void setSt_Class(String st_Class) { this.st_Class = st_Class; } public student(String st_Acadimicnumber,String st_name,String st_Class) { super(); this.st_Acadimicnumber = st_Acadimicnumber; this.st_name = st_name; this.st_Class = st_Class; } public student() { super(); } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest,int flags) { // TODO Auto-generated method stub } }
在主要活动中我使用此代码传递Obejct …
student st = new student("aaa","bbb","ccc"); Intent intent = new Intent(MainActivity.this,Main2Activity.class); intent.putExtra("stu",st); startActivity(intent);
在第二个活动(检索一个)
student model = (student)geTintent().getParcelableExtra("stu");
LogCat错误
12-09 15:50:06.068: E/Trace(30655): error opening trace file: No such file or directory (2) 12-09 15:50:06.188: D/libEGL(30655): loaded /system/lib/egl/libEGL_mali.so 12-09 15:50:06.188: D/libEGL(30655): loaded /system/lib/egl/libGLESv1_CM_mali.so 12-09 15:50:06.193: D/libEGL(30655): loaded /system/lib/egl/libGLESv2_mali.so 12-09 15:50:06.193: D/(30655): Device driver API match 12-09 15:50:06.193: D/(30655): Device driver API version: 10 12-09 15:50:06.193: D/(30655): User space API version: 10 12-09 15:50:06.193: D/(30655): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Wed Sep 12 17:53:53 KST 2012 12-09 15:50:06.218: D/OpenGLRenderer(30655): Enabling debug mode 0 12-09 15:50:08.033: D/GestureDetector(30655): [Surface Touch Event] mSweepDown false,mLRSDCnt : -1 mTouchCnt : 4 mfalseSizeCnt:0 12-09 15:50:08.123: D/AndroidRuntime(30655): ShutTing down VM 12-09 15:50:08.123: W/dalvikvm(30655): threadid=1: thread exiTing with uncaught exception (group=0x40e372a0) 12-09 15:50:08.128: E/AndroidRuntime(30655): FATAL EXCEPTION: main 12-09 15:50:08.128: E/AndroidRuntime(30655): java.lang.RuntimeException: Unable to start activity ComponenTinfo{Com.example.test08_passobjectoverintent/com.example.test08_passobjectoverintent.Main2Activity}: android.os.badParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.example.test08_passobjectoverintent.student 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.app.ActivityThread.access$600(ActivityThread.java:140) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.app.ActivityThread$H.handlemessage(ActivityThread.java:1227) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.os.Handler.dispatchmessage(Handler.java:99) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.os.Looper.loop(Looper.java:137) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.app.ActivityThread.main(ActivityThread.java:4898) 12-09 15:50:08.128: E/AndroidRuntime(30655): at java.lang.reflect.Method.invokeNative(Native Method) 12-09 15:50:08.128: E/AndroidRuntime(30655): at java.lang.reflect.Method.invoke(Method.java:511) 12-09 15:50:08.128: E/AndroidRuntime(30655): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008) 12-09 15:50:08.128: E/AndroidRuntime(30655): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775) 12-09 15:50:08.128: E/AndroidRuntime(30655): at dalvik.system.NativeStart.main(Native Method) 12-09 15:50:08.128: E/AndroidRuntime(30655): Caused by: android.os.badParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.example.test08_passobjectoverintent.student 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.os.Parcel.readParcelable(Parcel.java:2086) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.os.Parcel.readValue(Parcel.java:1965) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.os.Parcel.readMapInternal(Parcel.java:2226) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.os.bundle.unparcel(Bundle.java:223) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.os.bundle.getParcelable(Bundle.java:1165) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.content.Intent.getParcelableExtra(Intent.java:4451) 12-09 15:50:08.128: E/AndroidRuntime(30655): at com.example.test08_passobjectoverintent.Main2Activity.onCreate(Main2Activity.java:22) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.app.Activity.performCreate(Activity.java:5191) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.app.instrumentation.callActivityOnCreate(instrumentation.java:1094) 12-09 15:50:08.128: E/AndroidRuntime(30655): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064) 12-09 15:50:08.128: E/AndroidRuntime(30655): ... 11 more
在writeToParcel中:
@Override public void writeToParcel(Parcel dest,int flags) { dest.writeString(st_Acadimicnumber); dest.writeString(st_name); dest.writeString(st_Class); }
包裹创作者:
public static final Parcelable.Creator<Track> CREATOR = new Parcelable.Creator<Track>() { public student createFromParcel(Parcel in) { return new Track(in); } public student[] newArray(int sizE) { return new Track[size]; } };
和构造函数:
public student (Parcel sourcE){ /* * Reconstruct from the Parcel. Keep same order as in writeToParcel() */ st_Acadimicnumber = source.readString(); st_name = source.readString(); st_Class = source.readString(); }
它已经完成了.
问候
以上是大佬教程为你收集整理的android – 将对象从一个活动传递给另一个时出错(使用Parcelable)全部内容,希望文章能够帮你解决android – 将对象从一个活动传递给另一个时出错(使用Parcelable)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。