How I can send a Serializable Class to a other Activity with all fields?
我想启动另一个活动并从一个类中按类型发送一个对象,该类具有一个字段viewgroup。
在这里上课:
1 2 3 4 5 6 7 8 9 10 11 | public class SerializableObject implements Serializable { public ViewGroup parent; public SerializableObject(ViewGroup parent){ this.parent = parent; } public ViewGroup getParent(){ return this.parent; } } |
这里是电话:
1 2 3 4 | Intent i = new Intent(thisContext,CordovaViewer.class); i.putExtra("KEY",obj); cordova.getActivity().startActivity(i); |
号
我得到错误:
Parcelable在写入可序列化对象时遇到IOException
不能在活动之间发送视图。每个视图都附加到自己的活动(上下文)上。如果尝试在使用不同视图创建的某个活动中使用视图,则可能会导致内存泄漏和崩溃。
只需发送在接收活动中重新创建对象所需的数据。
您可以使用一个只包含必要数据的简单可序列化类来实现这一点,也可以只为需要传递的每一段数据设置一个额外的类。
尝试使用bundle传递可序列化列表。可序列化:
1 2 3 | Bundle bundle = new Bundle(); bundle.putSerializable("value", obj); intent.putExtras(bundle); |
号
在另一个
1 2 3 | Intent intent = this.getIntent(); Bundle bundle = intent.getExtras(); Object obj = bundle.getSerializable("value"); |
您的类必须实现
1 2 3 4 | intent.putExtra("MyClass", obj); // To retrieve object in second Activity getIntent().getSerializableExtra("MyClass"); |
希望这有帮助。