Ich habe diesen Code:SharedPreferences speichert nicht Wert
public class Register extends Activity {
private LinearLayout layout;
private TextView debug;
public static final String USER_CONFIG = "UserConfigs";
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
SharedPreferences settings = getSharedPreferences(USER_CONFIG, MODE_PRIVATE);
boolean registered = settings.getBoolean("registered", false);
layout = (LinearLayout) findViewById(R.id.layoutRegister);
if (!registered) {
debug = new TextView(this);
debug.setText("You have to register");
layout.addView (debug);
//TO DO user registration
settings.edit().putBoolean("registered", true);
settings.edit().commit();
} else {
debug = new TextView(this);
debug.setText("You have already registered");
layout.addView (debug);
//TO DO skip to next screen
}
}
}
Aber ich bin immer als „falsch“ getting registriert, wenn ich meine Anwendung neu starten. Ich habe versucht, es auch auf onStop()
zu begehen und habe das gleiche Ergebnis. Ich habe andere Themen mit diesem Problem hier gesehen, aber keiner von ihnen hatte das gleiche Problem wie ich.
Irgendwelche Ideen?
Vielen Dank. Es ist SharedPreferences.Editor. Es funktionierte. Aber kannst du mir erklären warum? Vielleicht, weil, wenn ich nur die Methoden anrufe, er verschiedene "Objekte" aufrufen kann? –
Ja, jedes Mal, wenn Sie '.edit()' aufrufen, wird das Editor-Objekt zurückgesetzt, und wenn Sie es für '.commit()' aufrufen, löscht es den Booleschen Wert, den Sie hineingelegt haben. – cjk
Sie können jedoch 'settings.edit(). PutBoolean (" registriert ", wahr). Commit();' (so weit ich mich erinnern kann) –