最終的なSDKがgoogleapisでリリースされたので、MapViewを使用してフラグメントを作成するための最良の方法は何ですか?MapViewが正しく機能するには、MapActivityが必要です。
フラグメントを管理するアクティビティをMapActivityから継承し(フラグメントは自己完結型であるという考えに反するため、悪い解決策)、通常のxmlベースのレイアウトを使用することは機能しません。MapActivity.setupMapView()でNullPointerExceptionが発生します:
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)
2番目のアイデアは、プログラムでMapViewを作成し、関連するアクティビティを(getActivity()を介して)Contextとして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)で
本当に、MapViewが必要とするバックグラウンドスレッドを処理するMapFragmentのようなものがあるはずです...では、これを行うための現在のベストプラクティスは何ですか?
ドイツ、バレンティンからの感謝とよろしく