我想通过一个类来读写SharedPreferences
,但是当我在我的 Activity 中调用这个类时,它会使应用程序崩溃/强制关闭
如果CheckBox
选中“记住电子邮件”,则应用程序将记住该电子邮件。
我的LoginActivity
:
public class LoginActivity extends Activity
{
private AppPreferences appPreferences;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
appPreferences = new AppPreferences(); // this makes the app crash
String email = appPreferences.getPreferenceString("email");
// ...
班上appPreferences
public class AppPreferences extends Activity
{
private SharedPreferences settings = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = this.getSharedPreferences(LOGIN_CREDENTIALS, MODE_PRIVATE);
}
public String getPreferenceString(String key) {
return settings.getString(key, DEFAULT_STRING);
}
public void setPreferenceString(String key, String value) {
editor.putString(key, (String) value);
}
// ...
我一直在寻找几个小时来解决这个问题,我尝试了 SO 的几种解决方案。我确实在getSharedPreferences
方法中调用了该onCreate
方法,这样就不会出现问题。
我究竟做错了什么?我是 Java 和 Android 开发的新手,所以请用示例充分描述。也欢迎其他采用完全不同方法的解决方案。提前致谢。