在我的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;
 


派生类中的方法。

10-06 01:19