我正在使用
class baseactivity extends Activity
{
//some stuffs is here, so i cannot Extend Fragment
}
class activity extends baseactivity
{
GoogleMap map=((MapFragment) getFragmanentManager().findFragmentById(R.id.map)).getMap();
if(map!=null)
Log.e("map is not null","map was unable to initialize");//printing till kitkat version
else
Log.e("map is initialize","successfully initialize");//printing in lollipop
}
它工作正常直到kitkat但在棒棒糖版本中它是null
我知道我可以使用getchildfragmentmanager但是我不能扩展片段类因为我的项目几乎完成所以我不能做出很大的改变。
帮助我而不扩展片段类。
更新了对我不起作用的代码
class Baseactivity extends Activty
{
//some stuff
}
class parent extends Baseactivity implements OnMapLoadedCallback
{
GoogleMap map;
void oncreate(Bundle savedIntanceState)
{
MapFragment mapfragment;
mapfragment.setOnMapLoaderCallback(this);
//map.addmarker.
}
@Override
public void onMapLoaded()
{
map=((MapFragment)getMapFragment.findFragmentById(R.id.map)).getMap();
}
}
答案 0 :(得分:2)
不推荐使用此方法。请改用getMapAsync(OnMapReadyCallback)。回调方法为您提供了一个保证非空并准备好使用的GoogleMap实例。
getMap()
无法保证返回非空映射,因为它需要一些时间来准备 - 使用OnMapReadyCallback并在回调中执行映射初始化步骤。