Как узнать, что карта готова к использованию при использовании SupportMapFragment?
вonCreate
метод, я используюSupportMapFragment
показать карту.
SupportMapFragment fragment = new SupportMapFragment();
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, fragment).commit();
В связи с этим я хотел бы добавить маркер. Проблема в том, когда звонокgetMap
Нуль, когда я могу попробовать еще раз? Есть ли событие, на которое я могу зарегистрироваться, или мой подход сам по себе неверен?
mMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
if(mMap == null)
//what do I do here?
Карта на самом деле отображается на телефоне, но мне, кажется, не повезло получить справку о добавлении маркеров.
ОБНОВИТЬ:
Причина, по которой я создавалSupportMapFragment
через конструктор, потому что типичныйsetContentView
сбой и не работал. Это поставило меня в затруднительное положение, когда я не мог получить свою ссылку вonCreate
метод, так как я на самом деле создавалSupportMapFragment
в это время. В дальнейшем расследовании, похоже, мойsetContentView
проблема заключалась в том, что не было ни фляги Google-play-services, ни модуля / src, настроенных как часть общего проекта. После выполнения ОБА из них,setContentView
теперь работает, и я могу получить ссылку черезgetMap()
как я и ожидал.
lots.xml ...
LotsActivity.java ...
public class LotsActivity extends FragmentActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lots);
GoogleMap mMap;
mMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
if(mMap == null)
//this should not occur now
}