我正在尝试在Android应用程序中使用Google Maps API v2。我已经使用以下代码以编程方式添加了地图片段,然后我尝试从我的SupportMapFragment获取GoogleMap,但是我总是得到null结果,即使地图显示在屏幕上很好...任何帮助都非常感谢!!!!! !!
由于
public class MapActivity extends BaseFragmentActivity {
private SchoolType mSchoolType=SchoolType.ALL;
private GoogleMap mMap;
private UiSettings mUiSettings;
private SupportMapFragment mMapFragment;
private static final String MAP_FRAGMENT_TAG = "map";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try{
setContentView(R.layout.map_activity);
mMapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentByTag(MAP_FRAGMENT_TAG);
if(mMapFragment==null)
addMapFragment();
setUpMapIfNeeded();
}
catch(Exception ex){
System.err.println("Exception: " + ex.getMessage());
}
}
private void addMapFragment(){
try{
GoogleMapOptions options = new GoogleMapOptions();
options.mapType(GoogleMap.MAP_TYPE_NORMAL)
.zoomControlsEnabled(true) ;
mMapFragment = SupportMapFragment.newInstance(options);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.fragment_map_content, mMapFragment,MAP_FRAGMENT_TAG);
//transaction.addToBackStack(null);
transaction.commit();
}
catch(Exception ex){
System.err.println("Exception: " + ex.getMessage());
}
}
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
// Try to obtain the map from the SupportMapFragment.
mMap = mMapFragment.getMap(); ***//ALWAYS RETUN NULL***
//mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
// Check if we were successful in obtaining the map.
if (mMap != null) {
setUpMap();
}
}
}
答案 0 :(得分:0)
在onResume()中调用setUpMapIfNeeded,就像这样。
@Override
protected void onResume() {
super.onResume();
// In case Google Play services has since become available.
setUpMapIfNeeded();
}