如何将可序列化类发送到其他所有字段的活动?
问题描述:
我想要启动一个其他Activity并通过类型ViewGroup从一个字段中发送一个对象。如何将可序列化类发送到其他所有字段的活动?
这里的类:
public class SerializableObject implements Serializable {
public ViewGroup parent;
public SerializableObject(ViewGroup parent){
this.parent = parent;
}
public ViewGroup getParent(){
return this.parent;
}
}
这里召唤:
Intent i = new Intent(thisContext,CordovaViewer.class);
i.putExtra("KEY",obj);
cordova.getActivity().startActivity(i);
我得到的错误:
Parcelable遇到IOException异常写序列化对象
答
无法发送交流之间的意见tivities。每个视图都附加到自己的活动(其上下文)。如果您尝试在一个使用不同的活动创建的活动中使用View,则会冒内存泄漏和崩溃的风险。
只需发送您需要在接收活动中重新创建对象的数据。
你可以用一个简单的Serializable类来做到这一点,该类只包含必要的数据,或者只需要为需要传递的每条数据设置一个Extra。
答
您的班级必须实施Serializable
。
intent.putExtra("MyClass", obj);
// To retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");
希望这会有所帮助。
答
尝试通过使用Bundle.Serializable的序列化的列表:
Bundle bundle = new Bundle();
bundle.putSerializable("value", obj);
intent.putExtras(bundle);
而在其他Activity
得到它为:
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
Object obj = bundle.getSerializable("value");
http://*.com/questions/23142893/parcelable-encountered- ioexception-writing-serializable-object-getactivity –
ViewGroup不可序列化。 – ditn
有我另一种方法发送布局作为frameayout到其他活动,并取代那里framelyout? – Tarasov