我正在使用
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();
}
}
根据 getMap() 文档:
此方法已弃用。请改用getMapAsync(OnMapReadyCallback)。回调方法为您提供了一个 GoogleMap 实例,该实例保证为非 null 并可供使用。
getMap()
不能保证返回非空映射,因为它需要一些时间来准备 - 使用 OnMapReadyCallback 并在回调中执行映射初始化步骤。