commit() speichert die Werte nicht (Preference)

X

xazen

Ambitioniertes Mitglied
0
Hallo Leute,

ich versuche ein Wert zu speichern. Ich bekomme im LogCat aber immer die gleichen Werte angezeigt. Kann mir das jemand erklären?

Code:
public void colorChanged(int color) {
        Log.d(TAG, "colorPickerValue: "+colorPickerValue+"; color: "+color); //colorPickerValue: -1; color: -6085339
        ((PreferenceScreen)this.findPreference(KEY)).getEditor().putInt("color_picker", color).commit();
        Log.d(TAG, "colorPickerValue: "+colorPickerValue+"; color: "+color); //colorPickerValue: -1; color: -6085339
        colorPickerValue = settings.getInt("color_picker", 0xFFFFFFFF);
        Log.d(TAG, "colorPickerValue: "+colorPickerValue+"; color: "+color); //colorPickerValue: -1; color: -6085339

    }
 
Würde mich überraschen, wenn Session für konkurrenten Zugriff geeinet wäre. Will sagen: du musst settings schon neu laden/aktualisieren, bevor sich da etwas zeigen kann.
 
kann ich setting während er Laufzeit aktualisieren ?
 
Ich habe es jetzt mit folgenden Code "realisiert".

Code:
settings=PreferenceManager.getDefaultSharedPreferences(this);

Solange ich innerhalb der Preferences bleibe funktioniert es auch. Sobald ich die Einstellungen verlasse und wieder reingehe, wird es leider zurückgesetzt.
 
Wie sieht denn deine onCreate() / on Resume() aus?
 
onCreate():
Code:
protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        
        settings = getSharedPreferences(KEY, MODE_PRIVATE);
        colorPickerValue = settings.getInt("color_picker", 0xFFFFFFFF);

        addPreferencesFromResource(R.xml.preference_screen);
        
        color_picker = findPreference("color_picker");
        color_picker.setOnPreferenceClickListener(this);
    }
onResume():
Code:
@Override
    public void onResume(){
        super.onResume();
        settings = PreferenceManager.getDefaultSharedPreferences(this);
    }
onResume wird leider nach dem beenden des Dialoges nicht aufgerufen. Habe es daher unter "colorChanged(int color)" auch nochmal.
 
Wenn ich mich nicht täusche, sind Preferences aus XML Read-Only
 
Wie werden dann Settings für Live-Wallpaper gewöhnlich gespeichert ? Oder hat jeder da seine eigenen Tricks?
 

Ähnliche Themen

5
Antworten
22
Aufrufe
1.420
590239
5
R
  • RalfKahl
Antworten
10
Aufrufe
298
RalfKahl
R
SaniMatthias
Antworten
19
Aufrufe
955
swa00
swa00
Zurück
Oben Unten