Теперь, когда окончательный SDK выпущен с API Google, как лучше всего создать фрагмент с помощью MapView? MapView нуждается в MapActivity для правильной работы.
Если Activity управляет фрагментами, унаследованными от MapActivity (плохое решение, потому что оно противоречит идее, что фрагменты являются самодостаточными) и использовать обычный макет на основе xml, не работает. Я получаю исключение NullPointerException в MapActivity.setupMapView ():
E / AndroidRuntime (597): вызвано: java.lang.NullPointerException E / AndroidRuntime (597): в com.google.android.maps.MapActivity.setupMapView (MapActivity.java:400) E / AndroidRuntime (597): на com.google.android.maps.MapView. (MapView.java:289) E / AndroidRuntime (597): в com.google.android.maps.MapView. (MapView.java:264) E / AndroidRuntime (597): на com.google.android.maps.MapView. (MapView.java:247)
Моя вторая идея заключалась в том, чтобы создать MapView программно и передать связанное действие (через getActivity ()) в качестве контекста в конструктор MapView. Не работает:
E / AndroidRuntime (834): вызвано: java.lang.IllegalArgumentException: MapViews можно создавать только внутри экземпляров MapActivity. E / AndroidRuntime (834): в com.google.android.maps.MapView. (MapView.java:291) E / AndroidRuntime (834): в com.google.android.maps.MapView. (MapView.java:235) E / AndroidRuntime (834): в de.foo.FinderMapFragment.onCreateView (FinderMapFragment.java:225) E / AndroidRuntime (834): в android.app.FragmentManagerImpl.moveToState (FragmentManager.java:708) E / AndroidRuntime (834): в android.app.FragmentManagerImpl.moveToState (FragmentManager.java:900) E / AndroidRuntime (834): в android.app.FragmentManagerImpl.addFragment (FragmentManager.java:978) E / AndroidRuntime (834): в android.app.Activity.onCreateView (Activity.java:4090) E / AndroidRuntime (834): в android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:664)
На самом деле должно быть что-то вроде MapFragment, которое заботится о фоновых потоках, которые необходимы MapView, я думаю ... Итак, каковы текущие рекомендации для этого?
Спасибо и привет из Германии, Валентин