Autore Topic: Problema SharedPreferences  (Letto 453 volte)

Offline JCC

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
Problema SharedPreferences
« il: 08 Novembre 2013, 17:40:56 CET »
0
Stò avendo un problema "stupido" con le shared e non riesco ad uscirne
In pratica gestisco 2 Shared diverse, se il valore di un campo corrisponde ad una stringa deve sommare o sottrarre la differenza tra 2 valori. Solo che quando viene letto il codice il nuovo valore viene sommato o sottratto anche nell'altra shared....
Per farvi capire posto tutto il codice:

Codice (Java): [Seleziona]
                                               String campo1 = (getString(R.string.txt_b));
                                               float maggiore = importoricevuto - importodaconfrontare;
                                               if (valore.equals(campo1)
                                                                   ||  importoricevuto > importodaconfrontare)
                                                 {     
                                                SharedPreferences prefs = getSharedPreferences(SharedPrefName, 0);
                                                SharedPreferences.Editor prefsEditor = prefs.edit();                                   
                                                float importo = prefs.getFloat( "Importo", 0 );
                                                prefsEditor.putFloat( "Importo", importo + maggiore );
                                                prefsEditor.commit();
                                        } else {
                                                       
                                                        SharedPreferences prefs = getSharedPreferences(SharedPrefNameC, 0);
                                                        SharedPreferences.Editor prefsEditor = prefs.edit();                                   
                                                        float importo = prefs.getFloat( "ImportoC", 0 );
                                                        prefsEditor.putFloat( "ImportoC", importo + maggiore );
                                                        prefsEditor.commit();
                                                               
                                                };
                                                float minore = importoricevuto - importodaconfrontare;
                                                if  (valore.equals(campo1)
                                                        ||  (importoricevuto < importodaconfrontare))
                                                        {
                                 
                                                SharedPreferences prefs = getSharedPreferences(SharedPrefName, 0);
                                                SharedPreferences.Editor prefsEditor = prefs.edit();                                   
                                                float importo = prefs.getFloat( "Importo", 0 );
                                                prefsEditor.putFloat( "Importo", importo + minore );
                                                prefsEditor.commit();
                                       
                                                } else  {
                                                       
                                                 
                                                                SharedPreferences prefs = getSharedPreferences(SharedPrefNameC, 0);
                                                                SharedPreferences.Editor prefsEditor = prefs.edit();                                   
                                                                float importo = prefs.getFloat( "ImportoC", 0 );
                                                                prefsEditor.putFloat( "ImportoC", importo + minore );
                                                                prefsEditor.commit();
                                                       
                                                }

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema SharedPreferences
« Risposta #1 il: 08 Novembre 2013, 18:04:40 CET »
0
Cosa ti dice che è stato sommato/sottratto ad entrambe?

Comunque per fare debug di questo genere di codice, metti dei Log.d() in tutte le ramificazioni, così da LogCat vedi facilmente dove passa e cosa fa.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline JCC

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
Re:Problema SharedPreferences
« Risposta #2 il: 08 Novembre 2013, 22:51:53 CET »
0
Se escludo una metà del codice (cioè gestisco una sola shared) tutto funziona bene, invece se utilizzo il codice completo sembra che vadano in conflitto....
Forse l'intero codice non l'ho scritto nel modo corretto???

I valori sommati e sottratti li visualizzo in 2 textview differenti in un'altra activity

Post unito: 09 Novembre 2013, 00:27:38 CET
Era un problema di ripetizione del codice...grazie ho risolto
« Ultima modifica: 09 Novembre 2013, 00:27:38 CET da Geng, Reason: Merged DoublePost »