- Forum-Beiträge: 27
19.05.2018, 12:11:31 via Website
19.05.2018 12:11:31 via Website
Hallo zusammen!
Ich habe ein Problem mit den SharedPreferences, ich verstehe nicht genau wieso die Werte nicht gelöscht werden.
Hier einmal der Code:
Intent NR 1
private void btnBackFunction() {
Intent intent = new Intent(this, MenuActivity.class);
intent.putExtra("btnBack", true);
startActivity(intent);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
}
Intent NR 2
SharedPreferences sprGameFieldSettings = getSharedPreferences("xxx", 0);
SharedPreferences sprGameField = getSharedPreferences("XX", 0);
Intent myIntent = getIntent();
Boolean btnBack = myIntent.getBooleanExtra("btnBack", false);
if(btnBack) {
SharedPreferences.Editor eG = sprGameFieldSettings.edit();
eG.clear();
eG.commit();
SharedPreferences.Editor eGF = sprGameField.edit();
eGF.clear();
eGF.commit();
}
if(sprGameFieldSettings.contains("breakGame")) {
redirectMainActivity();
return;
}
}
private void redirectMainActivity() {
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnStartAZ:
SharedPreferences sprGameFieldSettings = getSharedPreferences("xxx", 0);
SharedPreferences.Editor eG = sprGameFieldSettings.edit();
eG.putInt("difficulty", difficulty);
eG.putInt("firstDimension", firstDimension);
eG.putInt("secondDimension", secondDimension);
eG.apply();
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
break;
default:
break;
}
}
Bei Button click "Back" wird die Funktion btnBackFunction() im 1. Intent aufgerufen dieser verweist auf das 2. Intent, dort sollten alle Werte gelöscht werden.
Wenn ich dann das Spiel neustarte "btnStartAZ",.dann sollen neue Werte eingetragen werden. Beim debuggen im Bereich " if(btnBack) " sind die Werte auch erstmal gelöscht, aber wenn ich dann den Bereich " case R.id.btnStartAZ: " debugge sind die alten Werte wieder drin, als wären Sie nicht gelöscht... Ich hatte auch versucht die Werte bereits in der btnBackFunction() funktion direkt zu löschen, aber da kommt das selbe Problem.
Ich verstehe das nicht ganz mit den SharedPreferences, macht es ein Problem wenn man
SharedPreferences sprGameFieldSettings = getSharedPreferences("xxx", 0);
SharedPreferences sprGameField = getSharedPreferences("XX", 0);
öfters aufruft?
Das ist doch einfach nur eine "Datei" die geöffnet wird dort wird was gemacht und gespeichert oder missverstehe ich das?
Danke für eure Hilfe!
VG
— geändert am 19.05.2018, 13:04:24 durch Moderator
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.