2017-04-11 3 views
-3

Ich habe eine einfache Frage. Wie kann ich einen int-Wert wiederherstellen? Ich habe es mehr als 24 Stunden probiert, ohne dazu in der Lage zu sein. Einfaches Beispiel: 2 Aktivitäten, Aktivität A hat eine Schaltfläche, mit der ich zu Aktivität B wechsle. Dann ist standardmäßig in der oberen linken Ecke ein Flash für die Rückkehr zu Aktivität A, bis es kein Problem gibt. Angenommen, ich habe ein Textfeld in A oder eine andere Schaltfläche, die jedes Mal, wenn ich sie drücke, einen Zähler oder etwas inkrementiert. Jedes Mal, wenn ich von Aktivität B zu Aktivität A zurückkehre, werden die Werte gelöscht.Wiederherstellen eines Variablenwerts

Ich möchte wirklich wissen, wo ich die Informationen für diese Frage finden, ich habe bereits versucht, all diese Forschung auf Google:

1) android Variablen Werte nach der Rückkehr Aktivität wiederherstellen

2) android Aktivität wiederherstellen Zustand

Bereits in diesem versucht: https://developer.android.com/guide/components/activities/activity-lifecycle.html

Und auch zumindest die ersten zwei Seiten von google versucht. versuchte auch die OnSaveInstances .. ecc. Ich habe mir auch die Videos angesehen, wo die Inder das auf youtube erklären.

Die meisten möchte ich wissen, ist die Zeile, wo die offizielle Website von Android-Entwickler diese Informationen geschrieben hat.

Code:

public class MainActivity erweitert AppCompatActivity {

private Button btn_increment; 
private Button btn_go_activity_B; 
private EditText textField; 

private int counter; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    btn_increment = (Button) findViewById(R.id.button1); 
    btn_go_activity_B = (Button) findViewById(R.id.button2); 
    textField = (EditText) findViewById(R.id.edit_message); 

    onClick(btn_increment); 

    btn_go_activity_B.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(getApplicationContext(), SecondActivity.class); 
      startActivity(intent); 
     } 
    }); 


} 

public void onClick(View v) { 
    btn_increment.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      counter++;    
      textField.setText(Integer.toString(counter)); 
     } 
    }); 
} 

Bereits die Methoden onSaveIntanceState und OnRestoreInstanceState versucht. Dieses Programm jedes Mal, wenn ich auf der Schaltfläche btn_increment klicken zeigt im EditText die aktuelle Anzahl der Klicks, aber wenn ich an Aktivität B hin und zurück mit der Standard-Schaltfläche in der linken oberen Ecke sind die Werte

gegangen
+1

Geben Sie uns einen Code, um Ihnen zu helfen –

+0

Werfen Sie einen Blick in Bundles: http://StackOverflow.com/Questions/768969/Passing-Abundle-On-Startactivity –

+0

Können Sie den Code veröffentlichen? – Raghavendra

Antwort

0

können Sie Verwenden Sie die gemeinsame Präferenz. Android bietet viele Möglichkeiten zum Speichern von Daten einer Anwendung. Einer dieser Wege heißt Shared Preferences. Mit den gemeinsamen Einstellungen können Sie Daten in Form von Schlüssel, Wertpaar speichern und abrufen.

Einstellwerte:

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("name", "Elena"); 
editor.putInt("idName", 12); 
editor.commit(); 

Abrufen von Werten: -

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null); 
if (restoredText != null) { 
    String name = prefs.getString("name", "No name defined");//"No name defined" is the default value. 
    int idName = prefs.getInt("idName", 0); //0 is the default value. 
} 
0

Hoffnung, die Sie auf die zweite Aufgabe werden eine Absicht von der ersten Verwendung und Aktivität A zurückkehren Sie setResult verwenden müssen() Methode. In diesem Fall können Sie einen Rückruf im onActivityResult der Aktivität A erhalten.

Hier wird Aktivität A nicht zerstört und alle Variablen in Aktivität A stehen zur Verfügung.

Verwandte Themen