Let*_*rIt 5 android bundle android-intent start-activity
我有两个从两个不同的类实例化的对象,并且两个类均未实现可打包或可序列化。并且我想将这些对象传递给另一个活动,因此我编写了以下代码:
*代码:
//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");
Run Code Online (Sandbox Code Playgroud)
但是在运行时,我收到以下日志:
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)
Run Code Online (Sandbox Code Playgroud)
如何将不可包裹的物体从一个活动传递到另一个活动?
Hir*_*tel -3
你可以这样做:
您的模型类将如下所示:
public class ModelClass implements Serializable{
// Other stuff
}
Run Code Online (Sandbox Code Playgroud)
如何通过:
Intent mIntent = new Intent(mContext, NextActivity.class);
mIntent.putExtra("HeaderModel", mHeaderModel);
startActivity(mIntent);
Run Code Online (Sandbox Code Playgroud)
如何获得:
Header headerModel = (Header) getIntent.getSerializableExtra("HeaderModel");
Run Code Online (Sandbox Code Playgroud)
希望对你有帮助。
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |