多年来一直坚持这种情况,尝试了多种我认为可以解决的问题,但我对Java很陌生,无法弄明白。
所以我宣布这个东西:
public SharedPreferences prefs;
public SharedPreferences.Editor editor;
然后在稍后的方法中:
public void SaveInsult(View view) {
String saved = insult.getText().toString();
int number = prefs.getAll().size();
int newKey = number + 1;
String newKeyString = "" + newKey;
editor.putString(newKeyString, saved);
editor.commit();
Toast.makeText(getApplicationContext(), R.string.addedFavs, Toast.LENGTH_SHORT).show();
}
我的应用程序将正常启动,当我在按钮单击按钮上运行此代码时,如果我收到错误:
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Map android.content.SharedPreferences.getAll()' on a null object reference
我知道我错过了一些我无法解决的问题。
答案 0 :(得分:1)
你没有初始化prefs:
SharedPreferences prefs = context.getSharedPreferences("Your_Key", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
请务必在editor.putString(newKeyString, saved);