特别是,我想将给定的手势存储在设备的内存中。通常对于这些事情,我使用 SharedPreferences,但由于手势不是原始数据类型,所以在这里不起作用;我还研究了将它存储在内部存储中,这是我想要的,但这里的代码:http: //developer.android.com/guide/topics/data/data-storage.html表明这仅适用于字符串。
有没有一种方法可以轻松地将对象存储在设备内存中,或者我需要将对象转换为字符串,然后在读取文件时再转换回来?
Gesture mGesture;
SharedPreferences stored = getSharedPreferences("Shared Preferences", 0);
SharedPreferences.Editor editor = stored.edit();
byte[] storedGesture = serializeObject(mGesture);
String storedGestureString = new String(storedGesture);
editor.putString("Gesture Password", storedGestureString);
}
public static byte[] serializeObject(Object mObject){
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try{
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(mObject);
out.close();
byte[] buf = bos.toByteArray();
return buf;
} catch (IOException ioe) {
Log.e("serialize object", "error", ioe);
return null;
}
}
我尝试序列化有相关代码,当我在创建手势后点击确认按钮时应用程序崩溃。基本上,确认按钮运行此代码。