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