0

Я используюКак использовать 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(); 
    } 
} 
+0

Где вы прикрепляете фрагмент к этой деятельности? Зафиксируйте транзакцию, затем используйте getMapAsync, как говорит ianhanniballake, после чего вы получите экземпляр GoogleMap непосредственно в обратном вызове. – ivagarz

+0

Я не могу расшифровать фрагмент для действия, потому что я расширяю BaseActivity, который является базовым классом Activity и BaseActivity, имеет некоторые вещи, которые я должен использовать в своей основной деятельности. – Nitin

ответ

2

Пер с getMap() documentation:

Этот метод является устаревшим. Используйте вместо этого getMapAsync(OnMapReadyCallback). Метод обратного вызова предоставляет вам экземпляр GoogleMap, который должен быть не нулевым и готовым к использованию.

getMap() не гарантированно возвращает ненулевую карту, как это требуется некоторое время, чтобы подготовиться - использовать OnMapReadyCallback и сделать ваши карты шагов инициализации в функции обратного вызова там.

+0

Я получаю NullpointerException на map.setOnMapLoadedCallback (this). – Nitin

+0

Такая же проблема со мной тоже, любое решение? – Rahul

+0

@Nitin - у вас есть «карта» как «GoogleMap», но «setOnMapLoadedCallback()» - это метод «MapFragment». Можете ли вы опубликовать обновленный код, который вы пытаетесь запустить? – ianhanniballake

Смежные вопросы