现在,最终的SDK已与Google API结合使用-用MapView创建Fragment的最佳方法是什么?MapView需要MapActivity才能正常工作。
让Activity管理Fragments继承自MapActivity(糟糕的解决方案,因为它违背了Fragments自包含的想法),并且无法使用基于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)
我的第二个想法是以编程方式创建MapView,并将关联的活动(通过getActivity())作为上下文传递给MapView构造函数。不起作用:
E / AndroidRuntime(834):原因:java.lang.IllegalArgumentException:只能在MapActivity实例内部创建MapView。 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我需要的后台线程...那么,目前这样做的最佳实践是什么?
感谢德国瓦伦丁先生