在我的Android应用程序中,我已经将一些字符串保存到SharedPreferences中,并使用Strings序列化了ArrayList,以便保存此数据并将其用于将来用途。即使关闭应用程序。
一分钟前,我发现我还需要保存PolylineOptions以便将来使用。 PolylineOptions包含一些坐标,以在我的地图上用颜色和宽度绘制一条线。
我发现PolylineOptions不能像Strings一样可序列化。有没有一种方法可以“保存”我的PolylineOptions,还是需要在启动时保存PolylineOptions的设置并创建PolylineOptions?
因此,真正的问题是。如何序列化不可序列化的对象?
最佳答案
一种选择是创建PolylineOptions类的可序列化版本。
例如:
public class Blammy implements Serializable
{
public Blammy(final PolylineOptions polylineOptions)
{
//retrieve all values and store in Blammy class members.
}
public PolylineOptions generatePolylineOptions()
{
PolylineOptions returnValue = new PolylineOptions();
// set all polyline options values.
return returnValue;
}
}
如果PolylineOptions对象不是最终对象,则可以使用Serializable类(一个简单的包装器)对其进行扩展,并实现
private void writeObject(java.io.ObjectOutputStream out)
throws IOException
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException;
private void readObjectNoData()
throws ObjectStreamException;
派生类中的方法。