【发布时间】:2014-04-22 16:06:47
【问题描述】:
这是我的问题...它可能很简单,但我被困住了:
上下文
我有一些从 Internet 下载的信息(文本和小图像),当我点击 myMarkers 类时,我想将其显示在气泡内。我希望这项工作既适用于景观,也适用于非景观。
问题
当应用程序是纵向的并且当我终止应用程序并重新运行它时,一切正常(当我点击时,我看到带有文本和 img 的气泡)。 当我转向横向并且我的应用程序不可见但还活着时,地图会恢复标记,但是当我点击它们时,它们不会显示气泡。
代码
这里是我的 Marker 实现,它实现了Parcelable,以便在我调用onSaveInstanceState 时将它们保存到Bundle 中,当我的Activity 进入onPause() 时(省略空覆盖方法):
class myMarker extends Marker implements Parcelable{
public myMarker(MapView mapView) {
super(mapView);
}
public Parcelable.Creator<myMarker> CREATOR = new Parcelable.Creator<myMarker>() {
public myMarker createFromParcel(Parcel in) {
return new myMarker(map);
}
public myMarker[] newArray(int size) {
return new myMarker[size];
}
};
}
在我们拥有的 Activity 中的 onCreate() 内:
if (savedInstanceState != null) {
// Restore myMarkers
markers = savedInstanceState.getParcelableArrayList("MARKERS");
for (int i=0;i<markers.size();i++){
map.getOverlays().add(markers.get(i));
Marker m=markers.get(i);
}
map.invalidate();
}
else {
markers=new ArrayList<myMarker>();
}
以及保存过程:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current state
savedInstanceState.putParcelableArrayList("MARKERS", markers);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
我做错了什么?我错过了什么? 谢谢
【问题讨论】:
标签: android map android-activity openstreetmap osmdroid