偏好不会改变我的主要活动
在我的MainActivity中,我有一个textView。 在那个textView中有一个我保存在SharedPreferences中的Number。 和每一分钟SharedPreferences改变与警报管理器,但在我的MainActivity的SharedPreferences不会改变,任何人有一个想法,为什么?
这是MainActivity中代码的一部分
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
int ReleaseDate = preferences.getInt("com.fisher.freedom.ReleaseDate", 0);
TextView edit = (TextView) findViewById(R.id.DaysLeft);
Toast.makeText(MainActivity.this, "" + preferences.getInt("com.fisher.freedom.ReleaseDate", 0), Toast.LENGTH_SHORT).show();
edit.setText("" + ReleaseDate);
这是AlarmReceiver中的代码
public static final String ReleaseDate_Key = "com.fisher.freedom.ReleaseDate"; @Override public void onReceive(Context context, Intent intent) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); int ReleaseDate = preferences.getInt(ReleaseDate_Key, 0); SharedPreferences.Editor editor = preferences.edit(); editor.putInt(ReleaseDate_Key, --ReleaseDate); editor.apply();
为了获得你的int的值使用这个:
SharedPreferences sharedPreferences = getSharedPreferences(getApplicationContext().getPackageName(),0);
int ReleaseDate = sharedPreferences.getInt("ReleaseDate",0);
并保存它使用这个:
SharedPreferences prefs = getSharedPreferences(getApplicationContext().getPackageName(), Context.MODE_PRIVATE);
prefs.edit().putInt("ReleaseDate", ReleaseDate).commit();
有了这个,你忘记了在静态变量上写你的包名,它为我工作,所以它适合你。
链接地址: http://www.djcxy.com/p/50605.html