我是 android 开发的新手,也许这是一个愚蠢的问题,但请帮助我。我在尝试保存 int 值时遇到此错误。
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)’ 对空对象引用
这是我的代码
SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
String value = "com.example.app.value";
int i = prefs.getInt(value, 0);
而对于写
prefs.edit().putInt(number, i).apply();
我只想设置一个 SharedPreferences 并想首先读取它并将其写入 Activity 中。我该如何解决?
编辑
public class MainActivity extends Activity {
SharedPreferences sharedpreferences;
public static final String MyPREFERENCES = "myprefs";
public static final String value = "key";
int i = sharedpreferences.getInt(value, 0);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
}
public void sendMessage(View view) {
i += 1;
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putInt(value, i);
editor.apply();
}
我设法用不同的方式保存首选项,但我无法在 MainActivity extends Activity 类中读取它。
日志 :
由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用接口方法“int android.content.SharedPreferences.getInt(java.lang.String, int)”
原文由 Simbilli Dev 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个例子
SharedPreferences
要在 SharedPreferences 中保存
name
:从 SharedPreferences 获取
name
:有关详细信息,请访问:http: //developer.android.com/training/basics/data-storage/shared-preferences.html
更新代码: