2014-04-16 4 views
0

J'ai une application qui ressemble à un test. Il y a beaucoup de boutons radio et de groupes radio.
Pendant la rotation, j'économise le test actuel dans onSaveInstanceState (...) puis dans onCreateView (...) en restaurant cet objet. Tout fonctionne parfaitement bien là-bas .. Après la rotation tout est mis en place et fonctionne bien.Android gérer la rotation des fragments avec les méthodes RadioButtons onClick

Exemple:

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
... 
    if(savedInstanceState != null) 
      mTest = (Test)savedInstanceState.getSerializable(TEST_SAVED); 
     else{ 
      String userId = ""; 
      if (getArguments() != null) { 
       userId = getArguments().getString(PACIENT_ID); 
      } 
      mTest = new Test(userId, "..."); 
     } 
... 
} 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putSerializable(TEST_SAVED, mTest); 
} 

Je me occupe le bouton radio onClick directement en XML

<RadioButton 
    android:id="@+id/radioButtonOt1Btn1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="8" 
    android:onClick="onRadioButtonClicked" // HERE 
    android:text="10" /> 

Mais .. Lorsque je clique sur un bouton radio après rotation, tout est réglé sur NULL (TextViews, EditTexts et bien sûr mon objet Test).
Donc, le problème est évidemment dans la méthode XML onClick où quelque chose ne va pas.

Quelqu'un a des suggestions sur ce qui se passe? :-) Merci

+0

Votre activité et les fragments sont recréés. Utilisez-vous une mise en page différente pour Portrait et Paysage? – Libin

+0

Nop, j'utilise la même mise en page pour Portaint et Paysage .. – Sandak

+0

set android: configChanges = "orientation | screenSize" dans le manifeste pour votre activité pour éviter de recréer votre fragment lorsque l'orientation change – Libin

Répondre

0

Votre activité et vos fragments sont recréés lorsque l'orientation change.

Vous devez définir

android:configChanges="orientation|screenSize" 

dans le manifeste pour votre activité afin d'éviter de recréer votre fragment lorsque le changement d'orientation

Questions connexes