嘿,当我尝试将对象保存到内部存储时。我继续得到错误NotSerializableException说我需要序列化矩阵所以我可以去做吗?
答案 0 :(得分:4)
这取决于您所讨论的Matrix类,如果它是android.graphics.Matrix,您必须使用getValues()
来获取包含值的数组并将其序列化,然后在加载数据时,您创建一个新的Matrix并以数组作为参数调用setValues()
。
答案 1 :(得分:0)
将android.graphics.Matrix替换为此类,即Serializable:
public class SerializableMatrix extends Matrix implements Serializable {
private static final long serialVersionUID = 0L;
private void writeObject(java.io.ObjectOutputStream out)
throws IOException {
float[] f = new float[9];
this.getValues(f);
out.writeObject(f);
}
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
float[] f = new float[9];
f = (float[]) in.readObject();
this.setValues(f);
}
}