我有来自activity1的NewValue并存储首选项并与来自activity2的OldValue进行比较:我的问题是它不存储oldValue ..
活动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 :(得分:0)
是newValue的关键是&#34; new&#34;或&#34; newValue&#34; ?你用密钥保存它并用另一个
检索所以它不会找到newValue所以它总是等于零
editor.putInt("newValue", 5);
int newValue = prefs1.getInt("new", 0);
所以你的newValue将等于0,因为没有键&#34; new&#34;在prefrences
答案 1 :(得分:0)
好吧,如果您想要与活动共享偏好,那么您需要使用getSharedPreferences(String, int)但是您正在使用getSharedPreferences(int)
getSharedPreferences(int)
检索访问此活动专用的首选项的SharedPreferences对象。这只是调用底层的getSharedPreferences(String,int)方法将此活动的类名称作为首选项名称传递。
像这样得到SharedPreference
对象
SharedPreferences prefs1 =getSharedPreferences ("app_prefs", Context.MODE_PRIVATE);