Bonjour a tous,

J'ai un soucis concernant la sauvegarde des données après la rotation de l'écran.
J'ai deux activités :
- Additionneur (activity appelante)
- NumeroterEtCetera (activity appelée)

Voici l'activity Additionneur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
public class AdditionneurActivity extends Activity {
    private static final int REQUEST_CODE = 999;
    private int val;
    private TextView resultat;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_additionneur);
 
        if(savedInstanceState != null){
            resultat.setText(savedInstanceState.getString("res").toString());
        }else {
            resultat = (TextView) findViewById(R.id.resultat);
        }
    }
 
    public void onClickAjouterNombre(View view){
        Intent intent = new Intent("df.exo3.NUMEROTATION");
        startActivityForResult(intent, REQUEST_CODE);
    }
 
    public void onClickReset(View view){
        resultat.setText("0");
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(resultCode == RESULT_OK && requestCode == REQUEST_CODE && data.hasExtra("chiffres")) {
            Bundle extras = data.getExtras();
            String val = extras.getString("chiffres");
            int somme = Integer.parseInt(val)+Integer.parseInt(resultat.getText().toString());
            resultat.setText(somme + "");
        }
    }
 
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString("res", resultat.getText() + "");
    }
}

Et l'activity NumeroterEtCetera :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
public class NumeroterActivity extends Activity {
	private String saisie = "";
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_numeroter);
		if(savedInstanceState != null){
			saisie = savedInstanceState.getString("saisie");
		}
	}
 
	public void newChiffre(View v) {
		Button  bouton = (Button) v;
		saisie += bouton.getText();
	}
 
	public void toucheDel(View v) {
		if (saisie.length() > 0)
			saisie = saisie.substring(0, saisie.length()-1);
	}
 
	public void toucheReset(View v) {
		saisie = "";
	}
 
	public void toucheOk(View v) {
	    Intent intentionResult = new Intent();
	    intentionResult.putExtra("chiffres", saisie);
		setResult(RESULT_OK, intentionResult);
	    this.finish();
	}
 
	protected void onSaveInstanceState(Bundle outState){
		super.onSaveInstanceState(outState);
		outState.putString("saisie",saisie);
	}
 
}

Le but est d'appeler l'activité NumeroterEtCetera (à partir de l'activité Additionneur), de composer un numéro et de renvoyer ce numéro à l'activité Additionneur qui va afficher à chaque fois la somme des numéros saisies.

Mon problème est que lorsque dans l'activité NumeroterEtCetera:
- je compose un numéro
- puis je fais une rotation juste après
- enfin je valide le numéro saisie mais l'application plante !

Si je ne fais pas de rotation entre la composition du numéro et la validation du numéro saisie, le programme ne plante pas.

Quelqu'un a une solution à me proposer ?

Merci d'avance

Mohaskh