2016-03-13 3 views
0

Я получил NEWVALUE от activity1 и хранить на предпочтения и сравнить с OldValue из деятельности2: моя проблема это доза не хранить OldValue ..Android Preference старое и новое значение сравнить

на активность 1:

int i = 5;  

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

о деятельности 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

это, вероятно, не решит вашу проблему, но в качестве хорошей практики вам следует использовать 'SharedPreferences.Editor editor = prefs1.edit();' вместо вызова 'getPreferences()' снова. – drWisdom

+0

К сожалению, он не делает никакого уважения .. – Riz

+0

Как я уже сказал, это просто для хорошей практики. – drWisdom

ответ

0

Ну, если вы хотите поделиться предпочтения с деятельностью, то вам нужно использовать getSharedPreferences(String, int), но вы используете getSharedPreferences(int)

getSharedPreferences(int)

Извлечь объект SharedPreferences для , чтобы получить доступ к настройкам, которые являются приватными для этой активности. Это просто вызывает базовый метод getSharedPreferences (String, int), передавая имя класса этой активности в качестве имени предпочтений.

получить SharedPreference объект как этот

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

Happy_Coding;

+0

спасибо, он работает – Riz

0

является ключом NEWVALUE является "новый" или "новое_значение"? вы сохранили ее с ключом и извлечения с другой

Так он не найдет новое_значение так будет всегда равна нулю

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

Таким образом, вы новое_значение будет равен 0, так как нет ключ «новый» в prefrences

+0

Фактически newValue = 5, если oldValue = 4, он должен что-то сделать, а затем сохранить newValue как oldValue – Riz

+0

editor.putInt («newValue», new); int newValue = prefs1.getInt ("new", 0); newValue = 0, потому что нет ключа «новое» в prefrences –

+0

, но, к сожалению, dosnt work .. у меня есть обновленный код – Riz

Смежные вопросы