我使用这个类来配置与外部设备的Usb连接。它在我的activity android上运行正常,但我想把它传递给另一个activity,但我不能这么做。我试图序列化这个类以传递给另一个活动,但是当我调用startactivity时,另一个活动出现了异常。
这是我调用activity的时候:
Intent lights = new Intent(this, Screen2Activity.class);
lights.putExtra("usb", usb);
startActivity(lights);例外情况是: java.lang.RuntimeException: Parcelable在写入可序列化对象时遇到IOException (名称= com.example.vcontrol.Usb)
这是我的班级:
//-----------------------------------------------------------
//
// Class that configures and communicates with the Usb Port
//
//-----------------------------------------------------------
public class Usb implements Serializable {
//USB Parameters and Controls
private UsbManager usbManager = null;
private UsbDeviceConnection conn = null;
private UsbDevice device = null;
private UsbInterface usbIf = null;
private UsbEndpoint epIN = null;
private UsbEndpoint epOUT = null;
...有人能帮帮我吗?
发布于 2013-12-28 03:30:17
是的,只有当它们是可串行化的时,如果你不能控制类,那么你就不走运了。
发布于 2013-12-28 06:49:19
问:非常重要的问题……??例外情况到底是什么?
我猜是java.IO.NotSerializableException。
如果是这样的话,你基本上有两个选择:
1)修改您的类,使其实现Serializable
..。或者..。
2)扩展你的类,让新的子类实现Serializable。
以下是更多详细信息:
http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
http://www.vogella.com/articles/JavaSerialization/article.html
============附录============
感谢您的更新!我相信这就是解决之道
//示例序列化捆绑包(List)bundle.getSerializable("value"); = new Bundle();bundle.putSerializable("value",all_thumbs);intent.putExtras(捆绑包);//示例反序列化意图intent=this.getIntent();捆绑包bundle=intent.getExtras();List thumbs= bundle
https://stackoverflow.com/questions/20806627
复制相似问题