2016-03-28 6 views
0

Ich bin neu in Android-Entwicklung. Ich mache eine grundlegende Tracking-App für ein Kartenspiel, das ich spiele. Ich benötige zwei Aktivitäten, um zwei verschiedene Gruppen von Variablen zu verfolgen. Meine Frage ist egal was ich mache die Variablen setzen sich selbst zurück. Ich muss die Variablen nur speichern, wenn ich die Aktivitäten wechsle oder die Aktivitäten pausiere und fortsetze. Hier ist der Code zum Wechseln meiner Aktivitäten. Wie kann ich ständig zwischen den 2 wechseln, ohne die Variablen in beiden Aktivitäten zu verlieren.Wechselaktivitäten, aber meine Variablen beibehalten

Methode in Hauptaktivität ersten ist ...

public void showPWActivity(){  
    Intent myIntent = new Intent(this, Planeswalker.class);  
    startActivity(myIntent);  
} 

Methode für die zweite Aktivität

public void showMainActivity() { 
    Intent myIntent = new Intent(this, MainActivity.class); 
    startActivity(myIntent); 
} 
+0

Ich schlage vor, weitere Details zu Ihrer Frage hinzuzufügen. – Enzokie

Antwort

1

Um Zustand Ihrer Variablen vor dem Anhalt die Aktivität mit SharedPreferences zu sparen:

// Access the default SharedPreferences 
    SharedPreferences preferences = 
    PreferenceManager.getDefaultSharedPreferences(this); 
    // The SharedPreferences editor - must use commit() to submit changes 
    SharedPreferences.Editor editor = preferences.edit(); 

    // Edit the saved preferences 
    editor.putString("Name", "Tom"); 
    editor.putInt("Age", 31); 
    editor.commit(); 

Status abrufen Ihre Variablen, wenn die Wiederaufnahme Ihre Aktivität:

SharedPreferences preferences = 
    PreferenceManager.getDefaultSharedPreferences(this); 
String Name = preferences.getString("Name","Default"); 

Um Daten zwischen den Aktivitäten passieren:

In Ihrer aktuellen Aktivität, erstellen Sie eine neue Intent:

Intent i = new Intent(getApplicationContext(), NewActivity.class); 
i.putExtra("new_variable_name","value"); 
startActivity(i); 

Dann in der neuen Aktivität, Diese Werte abrufen Hier rufen wir einen String ab

Verwenden Sie diese Technik, um Variablen von einer Aktivität zur anderen zu übergeben.

+0

hat meine Antwort bearbeitet – Automatik

-1

gibt es mehr als eine Möglichkeit, dies zu erreichen. die einfachste ist das Überschreiben der onRestoreInstanceState und onSaveInstanceState

hier http://www.101apps.co.za/index.php/articles/saving-the-activity-s-instance-state-a-tutorial.html

und http://developer.android.com/intl/es/training/basics/activity-lifecycle/recreating.html

protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    Log.i(TAG, "onSaveInstanceState"); 

    final EditText textBox = 
      (EditText) findViewById(R.id.editText1); 
    CharSequence userText = textBox.getText(); 
    outState.putCharSequence("savedText", userText); 

} 

protected void onRestoreInstanceState(Bundle savedState) {  
    Log.i(TAG, "onRestoreInstanceState"); 

    final EditText textBox = 
      (EditText) findViewById(R.id.editText1); 

    CharSequence userText = 
      savedState.getCharSequence("savedText"); 

    textBox.setText(userText); 
} 

für komplexere Dinge betrachten im Hintergrund Hexe, die einen Service machen finden Sie alle Daten speichern Notwendigkeit für Ihre Anwendung.


Um Zustand Ihrer Variablen zu speichern, bevor die Aktivität mit SharedPreferences

Sie nicht pausieren! Speichern Sie Ihre Daten im lokalen Speicher (SharedPreferences = Speichern von Daten auf der Festplatte), solange Sie dies nicht wirklich tun müssen (config müssen Sie speichern, auch nachdem Sie Ihre App geschlossen haben), genauso wie Sie keine Daten auf Ihrem Computer speichern HD-Laufwerk in Ihren Desktop-Apps, solange es nicht das ist, was Sie wirklich brauchen.

Verwandte Themen