Autore Topic: Shared Preference  (Letto 668 volte)

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Shared Preference
« il: 21 Marzo 2012, 10:33:18 CET »
0
Ciao a tutti o una piccola domanda che mi sta facendo impazzire da stamattina presto...

Le SharedPreference possono essere sovrascritte?

Io ho un'applicazione che ha diverse tabs e dalle quali voglio poi estrapolare dei dati e salvarli indipendentemente dalla tab in cui mi trovo: per questo ho fatto in modo che quando la tab viene mandata onPause() questa scrive le SharedPreference nel seguente modo
Codice (Java): [Seleziona]
    @Override
    protected void onPause()
    {
        super.onPause();
        SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_APPEND);
                SharedPreferences.Editor editor = prefs.edit();
                for(int i=0;i<arrayCheckbox.length;i++)
                        editor.putBoolean("checkbox_"+i, arrayCheckbox[i].isChecked());
    }

Ora poichè la cosa può avvenire più volte e io identifico una certa preferenza con checkbox_i, dove i è un numero incrementale, mi chiedevo se vengono create più coppie (key,value) che hanno la stessa key oppure se automaticamente la vecchia coppia viene sostituita...

ossia:
Codice (Java): [Seleziona]
editor.putBoolean("checkbox_2, true);
editor.putBoolean("
checkbox_2, false);

che valore avrà la preferenza "checkbox_2"? true o false?


Ciao a tutti e grazie
Non esistono problemi, ma solo soluzioni...

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Shared Preference
« Risposta #1 il: 21 Marzo 2012, 10:41:57 CET »
0
Non capisco.

Se la key è diversa viene creata una nuova chiave, altrimenti viene sovrascritto il valore.

Quindi se setti

mykey_2->true
mykey_2->false

my_key_2 è false.

Se invece fai

mykey_2->true
mykey_3->false

Hei due chiavi, una mykey_2 che è true e una mykey_3 che è false.

Sempre che abbia capito la domanda...  :-)

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Re:Shared Preference
« Risposta #2 il: 21 Marzo 2012, 10:44:07 CET »
0
No no era esattamente quello che volevo sapere...
Ossia se si sovrascriveva il valore di una preferenza oppure no :-D

Poi ho risolto il perchè non mi aggiornava le preferenze... ho dimenticato di mettere editor.commit()  :-P

Grazie comunque :-D
Non esistono problemi, ma solo soluzioni...

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Shared Preference
« Risposta #3 il: 21 Marzo 2012, 10:45:56 CET »
0
Ci avevo pensato anche io più di qualche volta, però quando mi è capitato di modificare una chiave già esistente mi sono accorto che la chiave non si duplica ma assume solo l'ultima assegnazione.
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.