God*_*hen 17 android android-maps google-play-services
我目前正在测试新的Maps API V2,但我真的无法让它正常工作.
我的问题是getMap()总是返回null.
我已经在3个不同的点测试了这个电话:
这是代码:
public class MapActivity extends FragmentActivity {
private SupportMapFragment mMapFragment;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setupMap();
}
@Override
protected void onResume() {
super.onResume();
setupMap();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
setupMap();
}
}, 5000);
}
private void setupMap() {
if (getSupportFragmentManager().findFragmentById(R.id.fragment) == null) {
mMapFragment = CustomMapFragment.newInstance();
getSupportFragmentManager().beginTransaction()
.add(R.id.map_wrapper, mMapFragment).commit();
}
GoogleMap map = mMapFragment.getMap();
if (map != null) {
mMapFragment.getMap().getUiSettings().setZoomControlsEnabled(true);
mMapFragment.getMap().getUiSettings().setZoomGesturesEnabled(true);
mMapFragment.getMap().setMyLocationEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
God*_*hen 47
正如CommonsWare在链接问题中所述,问题仅在以SupportMapFragment编程方式而非<fragment>XML标记创建时发生.
如果以编程方式创建,则地图将在onActivityCreated()呼叫中可用.所以我的解决方法如下:
mMapFragment = new SupportMapFragment() {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
GoogleMap map = mMapFragment.getMap();
if (map != null) {
//Your initialization code goes here
}
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15512 次 |
| 最近记录: |