クラスを読み書きしたいのですSharedPreferences
が、アクティビティでこのクラスを呼び出すと、アプリがクラッシュ/強制終了します
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 の開発は初めてなので、例を挙げて詳しく説明してください。まったく異なるアプローチの他のソリューションも歓迎します。前もって感謝します。