我在framelayout中动态添加了我的谷歌地图片段.现在我想把标记和谷歌地图做其他的东西.但我无法通过get片段管理器访问它.代码显示没有错误但是当它执行时它返回空指针异常.
我认为它的逻辑错误.与类型铸造有关.请帮助
这是我的“nearby_places.xml”布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map_area" android:layout_width="match_parent" android:layout_height="match_parent" > <com.localiteproximus.CustomAutoCompleteTextView android:id="@+id/atv_places" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:hint="@string/str_atv_places" android:singleLine="true" /> <FrameLayout android:id="@+id/mapView" android:layout_width="wrap_content" android:layout_height="wrap_content" class="com.google.android.gms.maps.SupportMapFragment" android:layout_below="@id/atv_places"> </FrameLayout> </RelativeLayout>
这是我的班级
public class NearByPlaceFragment extends Fragment { public NearByPlaceFragment(){} View rootView; GoogleMap googleMap; public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { MapFragment fragment = new MapFragment(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(R.id.mapView,fragment).commit(); rootView = inflater.inflate(R.layout.nearby_places,container,false); googleMap = ((MapFragment) getFragmentManager().findFragmentById( R.id.map)).getMap(); return rootView }
和LogCat显示这一点
58.608: E/AndroidRuntime(12654): FATAL EXCEPTION: main 03-22 03:00:58.608: E/AndroidRuntime(12654): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.localiteproximus/com.localiteproximus.NearbyPlaces}: android.view.InflateException: Binary XML file line #21: Class is not a View com.google.android.gms.maps.MapFragment 03-22 03:00:58.608: E/AndroidRuntime(12654): at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2294) 03-22 03:00:58.608: E/AndroidRuntime(12654): Caused by: java.lang.classCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.view.View 03-22 03:00:58.608: E/AndroidRuntime(12654): at java.lang.class.asSubclass(Class.java:1182) 03-22 03:00:58.608: E/AndroidRuntime(12654): at android.view.LayoutInflater.createView(LayoutInflater.java:565) 03-22 03:00:58.608: E/AndroidRuntime(12654): ... 23 more