我在一个活动中有两个方法
private void save(String tag, final boolean isChecked)
{
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(tag, isChecked);
editor.commit();
}
private boolean load(String tag) {
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
return sharedPreferences.getBoolean(tag, false);
}我不想为了从同一个活动中的另一个静态方法中检索load的值而使load成为静态的。但是,当我试图使load方法成为静态方法时,我当然会因为一个非静态引用而得到一个错误。我怎么才能让它工作呢?
我试过这个Accessing SharedPreferences through static methods,但没有成功。
任何帮助都将不胜感激!
发布于 2011-06-05 15:35:59
您可以保存和加载Application-wide共享首选项,而不是Activity专用的首选项
private static boolean load(String tag) {
SharedPreferences sharedPreferences = Context.getApplicationContext().getSharedPreferences("namespace", Context.MODE_PRIVATE);
return sharedPreferences.getBoolean(tag, false);
}如果您这样做,请确保您也以相同的方式存储首选项(通过使用Context.getApplicationContext().getSharedPreferences)
https://stackoverflow.com/questions/6241340
复制相似问题