0

Hi I am making an application where I have to display a map, the map will show you to select a menu option from the drawer. At first I had a problem, but I put the following code and it worked:

public void onDestroyView() {
      super.onDestroyView();

        MapFragment fragment = ((MapFragment)getFragmentManager().findFragmentById(R.id.map));

        if (fragment != null) {
            FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction(); 
            ft.remove(fragment);
            ft.commit();
        }
}

The problem came when I use the back button on the device and when I select the same option from the menu drawer. He throws me the following exception and the application stops:

11-01 05:53:07.359: E/AndroidRuntime(1189): FATAL EXCEPTION: main
11-01 05:53:07.359: E/AndroidRuntime(1189): java.lang.NullPointerException
11-01 05:53:07.359: E/AndroidRuntime(1189):     at    
android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1410)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at 
android.app.FragmentManagerImpl$1.run(FragmentManager.java:441)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at 
android.os.Handler.handleCallback(Handler.java:800)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at  
android.os.Handler.dispatchMessage(Handler.java:100)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at android.os.Looper.loop(Looper.java:194)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at 
android.app.ActivityThread.main(ActivityThread.java:5371)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at java.lang.reflect.Method.invokeNative(Native 
Method)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at   
java.lang.reflect.Method.invoke(Method.java:525)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at   
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at  
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
11-01 05:53:07.359: E/AndroidRuntime(1189):     at dalvik.system.NativeStart.main(Native Method)

To change the options I'm using the following code in the activity

private void mostrarFragment(int position){
    Fragment fragment = null;

    System.out.println("opcion: " + position);

    editorPrefs = prefs.edit();
    editorPrefs.putInt("position", position);
    editorPrefs.commit();

    switch (position) {
        case 0:
            fragment = new Fragment1();
            break;
        case 1:
            fragment = new Fragment2();
            break;
        case 2:
            fragment = new Fragment3();
            break;
        case 3:
            fragment = new Fragment4();
            break;
        case 4:
            fragment = new Fragment5();
            break;
    }

    if(fragment != null){
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.replace(R.id.content_frame, fragment);
        transaction.commit();

        drawerList.setItemChecked(position, true);
        //drawerList.setSelection(position);
        drawerList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        getActionBar().setTitle(listaOpciones.get(position).getNombre());

        drawerMenu.closeDrawer(drawerList);
    }
  }

Thank you for your help

Eragonz91
  • 177
  • 1
  • 12
  • see [this issue, not sure if it helps](http://stackoverflow.com/questions/16205803/fragment-with-map-crashes-app-when-back-button-is-pressed-or-when-orientation-ch) – ashoke Nov 03 '14 at 04:14
  • i have same issue. can you get this solution...? if yes than send me answer of it..... – Aks Mar 30 '15 at 11:05

0 Answers0