我对Google Maps Api有疑问。旋转屏幕后,我有一个错误/旧的活动参考。 我“正在使用”mMapFragment.setRetainInstance(true);“。”pact“是活动。日志记录为我提供了活动的密码,但它们不相同(看起来示例)。
private void setUpMapIfNeeded() {
if (map != null) {
Log.d(H.TAG, "setUpMapifNeeded" );
Log.d(H.TAG, pact.toString() + " set new onclicklistener");
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener(){
@Override
public void onInfoWindowClick(Marker marker) {
Log.d(H.TAG, pact.toString() + " click");
}
});
}
}
登录示例
旋转前:
:
您需要更多代码吗?
答案 0 :(得分:0)
onRetainInstance保留Fragment实例而不是Activity。 您需要将活动参考更新为
中传递给您的参考onAttach(Activity)
答案 1 :(得分:0)
好的,我明白了,答案是改变行
fragmentTransaction.add(R.id.map_container, mMapFragment);
到
fragmentTransaction.replace(R.id.map_container, mMapFragment);