So: in onCreate lasse ich diese Methode ausführen:
private void setPreferences() {
if (prefs.contains("notFirstTime")) {
checked = prefs.getBoolean("checked", checked);
for (int i = 0; i < 7; i++) {
startH = "startHour" + String.valueOf(i);
startM = "startMinute" + String.valueOf(i);
stopM = "stopHour" + String.valueOf(i);
stopM = "stopMinute" + String.valueOf(i);
startHour[i] = prefs.getInt(startH, startHour[i]);
startMinute[i] = prefs.getInt(startM, startMinute[i]);
stopHour[i] = prefs.getInt(stopH, stopHour[i]);
stopMinute[i] = prefs.getInt(stopM, stopMinute[i]);
tb = "checked" + String.valueOf(i);
tBChecked[i] = prefs.getBoolean(tb, tBChecked[i]);
}
} else {
editor.clear();
editor.putBoolean("notFirstTime", true);
editor.putBoolean("checked", false);
for (int i = 0; i < 7; i++) {
checked = false;
startHour[i] = 7;
startMinute[i] = 0;
stopHour[i] = 14;
stopMinute[i] = 0;
tBChecked[i] = false;
startH = "startHour" + String.valueOf(i);
startM = "startMinute" + String.valueOf(i);
stopM = "stopHour" + String.valueOf(i);
stopM = "stopMinute" + String.valueOf(i);
editor.putInt(startH, 7);
editor.putInt(startM, 0);
editor.putInt(stopH, 14);
editor.putInt(stopM, 0);
tb = "checked" + String.valueOf(i);
editor.putBoolean(tb, false);
}
editor.apply();
}
}
Das heiß wenn der Wert notFirstTime vorhanden ist wird geladen, wenn nicht, dann alles auf Default-Werte gesetzt und gespeichert.
Bei jedem Speichern wird der Wert notFirstTime (nur als Kontrollwert) mit gespeichert, also sollte nur beim ersten Start alles auf Default gesetzt werden.
Und in onPause:
@Override
protected void onPause() {
super.onPause();
editor.clear();
editor.putBoolean("notFirstTime", false);
editor.putBoolean("checked", checked);
for (int i = 0; i < 7; i++) {
startH = "startHour" + String.valueOf(i);
startM = "startMinute" + String.valueOf(i);
stopM = "stopHour" + String.valueOf(i);
stopM = "stopMinute" + String.valueOf(i);
editor.putInt(startH, startHour[i]);
editor.putInt(startM, startMinute[i]);
editor.putInt(stopH, stopHour[i]);
editor.putInt(stopM, stopMinute[i]);
tb = "checked" + String.valueOf(i);
editor.putBoolean(tb, tBChecked[i]);
}
editor.apply();
}
Aber er setzt immer wieder die nach 1, 2 Minuten die Default-Werte.
So richtig steige ich nicht dahinter.
— geändert am 16.12.2014, 12:21:35