在Bundle中保存路径覆盖并检索

时间:2014-11-30 06:15:37

标签: android android-activity osmdroid

我试图想出一张显示物体行进路径的地图。

我使用了OSMDroid和pathOverlay。我已经成功地实现了这一点,但是一旦我按下它就会这样。我想保留路径并查找可用选项。

savedInstanceState类似于我想要的东西。

我尝试了以下代码:

static final String STATE_PATH = "objPath";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
        // Restore value of members from saved state
        savedInstanceState = savedInstanceState.getBundle(STATE_PATH);
    } else {

    setContentView(R.layout.activity_location);

    ...

    defineMap();

    ...

    pathOverlay = new PathOverlay(Color.RED, this);

    }
}


@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    // Save the user's current game state
    //savedInstanceState.putAll(savedInstanceState);
    savedInstanceState.putBundle(STATE_PATH, savedInstanceState);

    // Always call the superclass so it can save the view hierarchy state
    super.onSaveInstanceState(savedInstanceState);
}

这似乎不起作用。有人能指出我出错的地方吗?

1 个答案:

答案 0 :(得分:0)

osmdroid叠加层不是Parcelable。这意味着您无法在包中添加叠加层。

解决方案是定义自己的类来存储“数据模型”。然后在每次需要时从此数据模型构建路径覆盖。 由于此数据模型将是您自己的类,您可以将它们定义为Parcelable,并将它们放在Bundles中。