使用xstream库将Android中的对象序列化为XML。但它不起作用。此处显示的对象包含ArrayList作为成员。用xstream序列化这样的对象是不可能的吗?或者有什么方法可以使这项工作?
public class MainActivity extends Activity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView1);
ArrayList<String> str = new ArrayList<String>();
str.add("test xml string one");
str.add("test xml string two");
str.add("test xml string three");
ExampleObject testObj = new ExampleObject(str);
XStream xstream = new XStream(new DomDriver());
String xmlStr = xstream.toXML(testObj);
textView.setText(xmlStr);
} // onCreate
public class ExampleObject {
ArrayList<String> memberList;
public ExampleObject(ArrayList<String> list) {
memberList = list;
}
} // ExampleObject
}
答案 0 :(得分:1)
您是否实施了串行UID?
这就是它可能无法正常运作的原因:
private static final long serialVersionUID = 12345678;
Serializable类使用上面提到的UID解码写入的对象。如果没有这个数字,该类将无法解码该对象。我也听说如果你明显修改了类,那么尝试读回数据,操作就会失败。