2016-03-13 1 views
0

J'ai NewValue de activité1 et de stocker la préférence et comparer avec OldValue de activity2: mon problème, il dose pas stocker oldValue ..préférence Android ancienne et la nouvelle valeur comparer

sur l'activité 1:

int i = 5;  

    SharedPreferences prefs1 = getPreferences(0); 
    SharedPreferences.Editor editor = getPreferences(0).edit(); 
    editor.putInt("new", i); 
    editor.commit(); 

sur l'activité 2:

SharedPreferences prefs1 = getPreferences(0); 
    int oldValue = prefs1.getInt("old", 0); 
    int newValue = prefs1.getInt("new", 0); 

    /* Should Activity Check for Updates Now? */ 
    if (oldValue < newValue) { 

     /* Save current newValue for next Check */ 
     SharedPreferences.Editor editor = getPreferences(0).edit(); 
     editor.putInt("old", newValue); 
     editor.commit(); 

     do something.... 

    } 
+0

cela ne résoudra probablement pas votre problème, mais une bonne pratique consiste à utiliser 'SharedPreferences.Editor editor = prefs1.edit();' au lieu d'appeler 'getPreferences()' à nouveau. – drWisdom

+0

malheureusement, il dosnt faire toute déférence .. – Riz

+0

Comme je l'ai dit, c'est juste pour une bonne pratique. – drWisdom

Répondre

0

Eh bien, si vous voulez partager des préférences des activités alors vous devez utiliser getSharedPreferences(String, int) mais vous utilisez getSharedPreferences(int)

getSharedPreferences(int)

Récupérer un objet SharedPreferences pour accéder aux préférences qui sont privées pour cette activité. Il appelle simplement la méthode getSharedPreferences (String, int) sous-jacente en transmettant le nom de la classe de cette activité en tant que nom des préférences.

obtenir SharedPreference objet comme celui-ci

SharedPreferences prefs1 =getSharedPreferences ("app_prefs", Context.MODE_PRIVATE); 

Happy_Coding;

+0

merci mate, ça marche – Riz

0

est la clé de newValue est "nouveau" ou "newValue"? vous l'avez enregistré avec la clé et la récupération de l'autre

Il ne trouvera pas le nouvelleValeur il sera égal à zéro toujours

editor.putInt("newValue", 5); 
int newValue = prefs1.getInt("new", 0); 

Vous nouvelleValeur sera égal à 0 parce que dans prefrences pas « nouvelle » clé

+0

en fait newValue = 5, si oldValue = 4, il devrait faire quelque chose, puis stocker newValue en tant que oldValue – Riz

+0

editor.putInt ("newValue", new); int newValue = prefs1.getInt ("nouveau", 0); newValue = 0 car aucune clé n'est "nouveau" dans les préfrences –

+0

mais malheureusement dosnt travail .. j'ai mis à jour le code – Riz