虽然我在一个活动之外的一个单独的类中定义了共享偏好,但它正在抛出异常。但是,当我在活动中声明它工作得很好时,同样的方法。
我理解应该在调用getshared首选项之前首先启动活动。
代码如下:sharedpreferencesutil.java
android.content.SharedPreferences prefs =
getSharedPreferences(Constants.APP_NAME,
MODE_PRIVATE);
android.content.SharedPreferences.Editor editor = prefs.edit();
public boolean savePassword(String password) {
editor.putString(Constants.PASSWORD, password);
return editor.commit();
}
public String getPassword() {
return prefs.getString(Constants.PASSWORD, null);
}
Activity class:
mUserName = (EditText) findViewById(R.id.EditTextUsername);
if(sharedPreferences.getUserNameFromPrefs().isEmpty()) {
mUserName.setText(sharedPreferences.getUserNameFromPrefs(), TextView.BufferType.EDITABLE);
}
我也尝试使用上下文但仍然在我的activity类中的getSharedPref方法上获得运行时nullpointer异常。
请帮忙
答案 0 :(得分:1)
这两个链接清楚地回答了您的问题。
Android - How to use SharedPreferences in non-Activity class?
How do I use sharedPreferences outside of an Activity?
SharedPreferenced仅适用于有效的活动上下文。您只需将上下文作为参数传递给您的类,这将解决您的问题。