如何在不扩展片段类的情况下使用 getchildfragmentmanager



我正在使用

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 并在回调中执行映射初始化步骤。

相关内容

最新更新