我有两个从两个不同的类实例化的对象,并且这两个类都没有实现可分割或可序列化。我想将这些对象传递给
另一项活动,所以我编写了以下代码:
*code:
//send object
Intent intConnect = new Intent(mCtx.getApplicationContext(), ActConnect.class);
Bundle bndConnect = new Bundle();
bndConnect.putParcelable("HeaderModel", (Parcelable) mHeaderModel);
bndConnect.putParcelable("DetailsModel", (Parcelable) mDetailsModel);
intConnect.putExtras(bndConnect);
intConnect.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mCtx.startActivity(intConnect);
//receive objects in the receiving activity
Bundle extras = getIntent().getExtras();
Header headerModel = (Header) extras.get("HeaderModel");
Details detailsModel = (Details) extras.get("DetailsModel");
但在运行时,我收到以下 logcat:
logcat:
10-08 11:55:44.225 13138-13138/com.example.com.bt_11 E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.com.bt_11, PID: 13138
java.lang.ClassCastException: com.example.com.adapter.Header cannot be cast to android.os.Parcelable
at com.example.com.adapter.MyExpandableList$1.onClick(MyExpandableList.java:152)
at android.view.View.performClick(View.java:5184)
at android.view.View$PerformClick.run(View.java:20893)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
如何将不可分割的对象从一个活动传递到另一个活动?
如果你的类没有实现parcelable或serialized,并且你不能修改它们(代码可能不在你的控制之下),那么你就没有办法directly在两个活动之间发送数据。
但是,您可以在两个活动之间间接传递数据。您可以将它们存储在单例类中(但是单例很难测试等),您可以在应用程序类中保存和检索它们,或者您可以将它们保存到共享首选项、由第二个活动加载的文件或数据库中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)