2017-09-26 1 views
0

J'ouvre un écran d'appareil photo pour mon scanner Zxing et j'utilise également un modèle personnalisé pour cela. Dans mon modèle personnalisé que je l'ai mis en place SetDisplayHomeAsUpEnabled(true) mais quand je clique dessus, je reçois cette erreur Java.Lang.IllegalStateException: Can not perform this action after onSaveInstanceStateXamarin Impossible d'effectuer cette action après onSavedInstanceState

Voici mon événement click:

private void Toolbar_NavigationClick(object sender, Android.Support.V7.Widget.Toolbar.NavigationClickEventArgs e) 
    { 
     var mainActivity = Activity as MainActivity; 
     mainActivity?.OnBackPressed(); 
    } 

La trace complète de la pile de mon erreur:

[ERROR] FATAL UNHANDLED EXCEPTION: Java.Lang.IllegalStateException: Can not perform this action after onSaveInstanceState 
--- End of managed Java.Lang.IllegalStateException stack trace --- 
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1842) 
at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:775) 
at android.support.v7.widget.Toolbar_NavigationOnClickEventDispatcher.n_onClick(Native Method) 
at android.support.v7.widget.Toolbar_NavigationOnClickEventDispatcher.onClick(Toolbar_NavigationOnClickEventDispatcher.java:37) 
at android.view.View.performClick(View.java:5698) 
at android.view.View$PerformClick.run(View.java:22523) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:158) 
at android.app.ActivityThread.main(ActivityThread.java:7230) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

Le bouton de retour sur l'appareil fonctionne parfaitement, mais je ne sais pas pourquoi je reçois cette erreur sur onBackPressed().

Répondre

0

avez-vous remplacé cette méthode dans votre activité?

public override bool OnOptionsItemSelected(IMenuItem item) 
    { 
     switch (item.ItemId) 
     { 
      case Android.Resource.Id.Home: 
       Finish(); 
       return true; 
      default: 
       return base.OnOptionsItemSelected(item); 
     } 

    }