1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

commit() speichert die Werte nicht (Preference)

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von xazen, 07.04.2011.

  1. xazen, 07.04.2011 #1
    xazen

    xazen Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    79
    Erhaltene Danke:
    0
    Registriert seit:
    09.12.2010
    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
    
        }
     
  2. DieGoldeneMitte, 07.04.2011 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    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.
     
  3. xazen, 08.04.2011 #3
    xazen

    xazen Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    79
    Erhaltene Danke:
    0
    Registriert seit:
    09.12.2010
    kann ich setting während er Laufzeit aktualisieren ?
     
  4. xazen, 08.04.2011 #4
    xazen

    xazen Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    79
    Erhaltene Danke:
    0
    Registriert seit:
    09.12.2010
    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.
     
  5. ko5tik, 08.04.2011 #5
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Wie sieht denn deine onCreate() / on Resume() aus?
     
  6. xazen, 08.04.2011 #6
    xazen

    xazen Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    79
    Erhaltene Danke:
    0
    Registriert seit:
    09.12.2010
    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.
     
  7. ko5tik, 08.04.2011 #7
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Wenn ich mich nicht täusche, sind Preferences aus XML Read-Only
     
  8. xazen, 11.04.2011 #8
    xazen

    xazen Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    79
    Erhaltene Danke:
    0
    Registriert seit:
    09.12.2010
    Wie werden dann Settings für Live-Wallpaper gewöhnlich gespeichert ? Oder hat jeder da seine eigenen Tricks?
     

Diese Seite empfehlen