тепер, коли остаточний SDK вийшов із google apis - який найкращий спосіб створити фрагмент за допомогою MapView? MapView потребує MapActivity для правильної роботи.
Наявність Активності, яка керує Фрагментами, успадковується від 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 потребує, мабуть ... Тож яка найкраща практика для цього?
Подяки та привіт з Німеччини, Валентин