2017-02-07 2 views
0

Sagen Sie ActivityA mit zwei Tasten. Jeder dieser Buttons öffnet ActivityB aber mit jeweils einem anderen Fragment. Beide Fragmente enthalten eine EditText. Wenn ich während ActivityB das Fragment wechseln möchte, muss ich zu ActivityA zurückkehren und die andere Taste drücken.Speichern eines Wertes beim Löschen einer Aktivität, dann Wiederherstellen

Nun, was ich tun möchte, ist den Wert in jedem EditText gespeichert, wenn ich Fragment wechseln oder die App schließen und den Wert in der richtigen EditText wieder aufzufüllen, wenn ich das Fragment erneut öffne.

Es scheint, es selbst zu tun, wenn ich die SettingActivity öffne, komme dann zurück, aber nicht, wenn ich die Tätigkeit zerstöre. Am Ende möchte ich das Fragment wieder öffnen, so wie ich es verlassen habe. Vielen Dank.

+0

Schließlich: die Frage, wie die Daten zu speichern, wenn die App geschlossen/minimiert? – OBX

+0

überprüfen Sie diese https://developer.android.com/reference/android/app/Activity.html#onRestoreInstanceState(android.os.Bundle) – Gaurav

+0

Genau was meinst du mit "App schließen"? Soll die Eingabe gespeichert werden, wenn Sie die Zurück-Taste von 'ActivityA' drücken? –

Antwort

2

Sie müssen den Wert speichern und dann wiederherstellen.Ein guter Weg sind die gemeinsamen Einstellungen.
1-save:

SharedPreferences sharedpreferences = getSharedPreferences("mypref", Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedpreferences.edit(); 

     editor.putString("var1", edittext.getText().toString()); 
     editor.commit(); 

2-Wiederherstellung:

String s = sharedpreferences.getString("var1","DEF"); 
+0

Danke, ich werde gemeinsame Einstellungen verwenden. – Novak

0

Verwenden SharedPreference den Wert zu speichern Wenn Sie Ihre neue Tätigkeit Gebrauch nennen dies

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
        SharedPreferences.Editor editor = settings.edit(); 
        editor.putString("userEmail", youredittext.getText().toString()); 
        editor.commit(); 

Wenn Sie den gespeicherten v ert in jedem Ihrer Aktivitäten, um es wie diese

SharedPreferences getPrefs = PreferenceManager 
      .getDefaultSharedPreferences(getBaseContext()); 
    String mUserEmail = getPrefs.getString("userEmail", null); 
Verwandte Themen