Autore Topic: Shared Preference getInt  (Letto 320 volte)

Offline ricky1966

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab
  • Sistema operativo:
    Kubuntu
Shared Preference getInt
« il: 08 Luglio 2016, 22:22:36 CEST »
0
Vi risulta un errore nella restituzione di Interi nelle applicazioni che ricorrono a Shared Preference?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Shared Preference getInt
« Risposta #1 il: 09 Luglio 2016, 10:51:40 CEST »
0
No. Sempre funzionato perfettamente. posta il codice

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 582
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Shared Preference getInt
« Risposta #2 il: 11 Luglio 2016, 10:51:15 CEST »
0

A me è capitato che la lettura subito dopo la scrittura non restituisca il valore appena aggiornato.

Di solito utilizzo una variabile che fa da cache:

Codice (Java): [Seleziona]
boolean _cacheIsValid = false;
int _cacheVal;
private SharedPreferences config;

@Override
public void onCreate(Bundle savedInstanceState) {
  //...
  config = android.preference.PreferenceManager.getDefaultSharedPreferences(this);
  //...
}

public void setVal(int val) {
  _cacheVal = val;
  Editor edit = config.edit();
  edit.putInt("VAL", _cacheVal);
  edit.commit();
}

public int getVal() {
  initCache();
  return _cacheVal;
}

private void initCache() {
  if (! _cacheIsValid) {
    _cacheVal = config.getInt("VAL", 0);

    _cacheIsValid = true;
  }
}
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline spectrumIg

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
Re:Shared Preference getInt
« Risposta #3 il: 11 Luglio 2016, 12:52:20 CEST »
0
Mai avuto problemi.
Per scrivere le modifiche usi commit() o apply()? Il primo e' sincrono, il secondo asincrono.  Non so, magari se usi apply() la lettura arriva troppo velocemente...ipotesi buttata lì.
Se posti il codice magari e' piu' semplice.