Приложение Google Map вылетает, если дважды щелкнуть его в окне навигации

Я создал приложение, в которое я включил навигационный ящик. В котором есть один фрагмент, связанный с фрагментом карты Google, но он вылетает, если я дважды щелкаю по нему, оставаясь на том же фрагменте, который я использовал следующим способом:

@Override
public void onDestroyView() {
    // TODO Auto-generated method stub

    Fragment f=(Fragment)getFragmentManager().findFragmentById(R.id.maps);

    if(f!=null)
    {
        getFragmentManager().beginTransaction().remove(f).commit();
    }
    super.onDestroyView();
}

Приведенный выше метод помог сделать так, чтобы приложение не зависало при переключении на другие фрагменты, но если я нажимаю на фрагмент карты Google, оставаясь на том же фрагменте (фрагмент карты Google) карты Google, происходит сбой всего приложения.

И это весь мой код:

public class MainActivityUseful extends Fragment{

GoogleMap gmap;
MapView mView;
Bundle mBundle;
//Marker userMarker;
static View rootView;
private static final LatLng venue=new LatLng(26.785634800000000000, 80.922847499999990000);

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    rootView=inflater.inflate(R.layout.activity_main_activity_useful, container,false);

    try{
    if(gmap==null){
    gmap=((MapFragment)getFragmentManager().findFragmentById(R.id.maps)).getMap();
    }
    gmap.addMarker(new MarkerOptions().position(venue).title("Lucknow Mahotsav Venue").snippet("Venue of Lucknow Mahotsav 2014"));
    CameraPosition cmps=new CameraPosition.Builder().target(venue).zoom(15).bearing(70).tilt(25).build();
    gmap.animateCamera(CameraUpdateFactory.newCameraPosition(cmps));
    }

    catch(Exception e)
    {
        e.printStackTrace();
    }

    return rootView;

}

@Override
public void onDestroyView() {
    // TODO Auto-generated method stub

    Fragment f=(Fragment)getFragmentManager().findFragmentById(R.id.maps);

    if(f!=null)
    {
        getFragmentManager().beginTransaction().remove(f).commit();
    }
    super.onDestroyView();
}

@Override
public void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    if(gmap!=null)
    {
        gmap=null;
    }
}

@Override
public void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    if(gmap!=null)
    {
        gmap=null;
    }
 }

@Override
public void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    if(gmap!=null)
    {
        gmap=null;
    }
}

@Override
public void onDetach() {
    // TODO Auto-generated method stub
    super.onDetach();
    if(gmap!=null)
    {
        gmap=null;
    }
}
}

XML выглядит следующим образом:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="think.computers.lucknowmahotsav.MainActivityUseful" >

<fragment 
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/maps"
android:name="com.google.android.gms.maps.MapFragment"
/>

Ошибка: "11-25 12:19:01.628: E/AndroidRuntime(9031): android.view.InflateException: строка двоичного файла XML #11: ошибка надувания фрагмента класса"

0 ответов

Другие вопросы по тегам