Persistence des données (Débutant)
Bonjour,
Dans le cadre de mon etude du dev sous android, je m attelle aujourd'hui aux differentes forme de persistence, en l occurence la premiere de toute celle qui passe par l utlisation de la classe SharedPreferences.
Mon appli est toute bete, il y a un layout qui contient un TextView, un Editview.
Lorsque je demarre l application je saisie une valeur dans l EditView, lorsque je ferme l application je "sauvegarde" cette valeur.Quand je relance l appli je veux mettre la valeur sauvegardée dans le TextView et pouvoir resaisir une nouvelle valeur.
Alors la premiere fois ca c est tres bien passé j ai saisi une valeur et fermé l appli.
Depuis quand je l ouvre j' ai un message d erreur : Sorry the application ... please try again.
Si je mets en commentaires le code qui valorise le texte de la textView je n ai plus l erreur ! (en rouge)
Mais la je ne vois vraiment pas comment faire ???
Merci de l aide des experts !
Voici le code :
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
|
public class xtTut01 extends Activity {
public static final String XT_PREF_TUT01 = "MyPrefTut01";
public static final String XT_PREF_ND = "notDefined";
private EditText mText;
private SharedPreferences xtTut01Settings;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
xtTut01Settings = getSharedPreferences(XT_PREF_TUT01, 0);
TextView mView = (TextView)findViewById(R.id.anc_val);
String result = (String)xtTut01Settings.getString(XT_PREF_TUT01, XT_PREF_ND);
if (result!=XT_PREF_ND && result!=null) {
mView.setText(result);
}
setContentView(R.layout.main);
}
@Override
public void onStop(){
super.onStop();
SharedPreferences.Editor editor = xtTut01Settings.edit();
mText = (EditText)findViewById(R.id.text);
CharSequence test = (CharSequence)mText.getText();
editor.putString(XT_PREF_TUT01,test.toString());
editor.commit();
}
} |
Merci de votre aide !