now that the final SDK is out with google apis - what is the best way to create a Fragment with a MapView? MapView needs a MapActivity to work right.
Having the Activity managing the Fragments inherit from MapActivity (bad solution because it goes against the idea that Fragments are self contained) and use a regular xml based layout does not work. I get a NullPointerException in 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)
My second idea was to create the MapView programmatically and pass the associated activity (via getActivity()) as Context to the MapView constructor. Does not work:
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)
Really there should be something like MapFragment that takes care of the background threads MapView needs I guess... So what is the current best practice to do this?
Thanks and regards from Germany,
Valentin
Question&Answers:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…