Problème sauvegarde données après rotation de l'écran
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:
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:
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