Bonjour,

Dans une Activity j'ai des AlertDialog ou des Dialog, lorsqu'ils sont affichés et que l'orientation change, j'ai une erreur : Activity has leaked window...

Du coup dans onCreate() je fais des choses du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
dialogue = builder.create();
dialogue2 = new Dialog(this);
Et dans onPause() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
dialogue.dismiss();
dialogue2.dismiss();
J'ai regardé cette page :
http://developer.android.com/guide/t...e-changes.html

Donc oui je pourrais juste mettre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
android:configChanges="orientation|keyboardHidden"
Et je n'aurais plus de problème, mais apparemment ce n'est pas conseillé.

Je n'aime pas trop créer et supprimer à chaque onCreate() et onPause().
Existe t-il une meilleure solution ?

Des fois j'ai un bouton dans le dialog et pour garder la valeur j'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
     @Override
     public void onSaveInstanceState(Bundle savedInstanceState) {
          super.onSaveInstanceState(savedInstanceState);
          savedInstanceState.putString("provenance", boutonProvenance.getText().toString());
     }
 
     @Override
     public void onRestoreInstanceState(Bundle savedInstanceState) {	
          super.onRestoreInstanceState(savedInstanceState);
 
          if(boutonProvenance!=null){
               boutonProvenance.setText(savedInstanceState.getString("provenance"));
          }
     }
Ça fonctionne bien, mais ça ne me sert pas pour garder un Dialog ouvert l'hors de la rotation de l'écran.