2016-06-05 4 views
-1

Ich habe ein Problem mit dem Speichern von Variablenwert.Speichern Sie eine Variablen nach dem Herunterfahren App

(android)

Ich habe Aktivität, die anzeigen erstreckt, aber ich weiß nicht, wie die Verwendung von TXT-Datei in Aktivität speichern und lesen, die Ansicht erstreckt, Schreiben versuche ich, Serialisierung und Deserialisierung andere Klasse, die ich rufe aus Hauptaktivität. aber kein Lauf. Es war nicht erlaubt Call-Methode, die serialisiert und deserialisiert.

Ich brauche Higscore von App speichern. und ich brauche Wert higscore, wenn ich App neu starte.

public class Game extends View { 

Ich muss diesen Wert geben, um Spielklasse geben. Aber ich weiß nicht wie.

Danke für irgendwelche Ideen.


Speichern

SharedPreferences sharedPref = getContext().getActivity().getPreferences(Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPref.edit(); 
     int newHighScore; 
     editor.putInt(getContext().getString((R.string.saved_high_score), newHighScore); 
     editor.commit(); 

.getActivity() haben einen roten. Compiler kennt diese Methode nicht.

lesen

SharedPreferences sharedPref2 = getContext().getActivity().getPreferences(Context.MODE_PRIVATE); 
     int defaultValue = 0; 
     int highScore = sharedPref.getInt(getContext().getString((R.string.saved_high_score), defaultValue)); 

.getActivity() haben einen roten. Compailer weiß nicht, diese Methode zu und getContext(). GetString ((R.string.saved_high_score), default) ist unterirdisch (getInt (string, int) in SharedPreferencies kann nicht auf (String aplied werden))

+0

Android bietet mehrere Optionen für Sie, um persistente Anwendungsdaten zu speichern. Check out https://developer.android.com/guide/topics/data/data-storage.html – mjn

+0

Ich habe nicht in meiner Aktivität OnCreate, weil ich nur Canvas und alle Paint darauf alle 50ms habe – adda

Antwort

1

Das sollte für Sie arbeiten:

Wert speichern:

SharedPreferences sharedPref = 
getContext().getSharedPreferences("preferences",Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt("highscore", [here goes your highscore]); 
editor.commit(); 

lesen Wert:

getContext().getSharedPreferences("preferences",Context.MODE_PRIVATE); 
    int defaultValue = 0; 
    long highScore = sharedPref.getInt("highscore", defaultValue); 
+0

Ich versuche, Ihre verwenden code, aber .getActivity und getString Fehler: (933, 17) Fehler: Symbolmethode getActivity() kann nicht gefunden werden Fehler: (936, 23) Fehler: Symbolmethode kann nicht gefunden werden getString (int) Fehler: (939, 41) error: Kann die Symbolmethode getActivity() nicht finden Fehler: (941, 44) error: Kann die Symbolmethode getString (int) nicht finden – adda

+0

Ich habe das bereits in der Antwort angegeben. Anstelle von getActivity() benutze getContext() mit getString (...) benutze getContext(). GetString (...) Du erhältst diese aus dem Kontext, der auch Aktivität sein kann. Das sind grundlegende Dinge, also sollten Sie mit einigen Grundlagen beginnen. – xklakoux

+0

getContext(). GetActivity() kein Lauf. Get-Aktivität ist immer noch rot. – adda

Verwandte Themen