使用首选项管理器时出现 java.lang.NullPointerException

标签 java android sharedpreferences android-logcat

Logcat 错误:

01-21 07:23:04.021: E/AndroidRuntime(361): Caused by: java.lang.NullPointerException }

我认为是这段java代码:

while (date.equals("01:00:00") || bSet);
    int randomNumber = rand.nextInt(ids.length);
    String last = ((getResources().getString(ids[randomNumber])));
    tv.setText(last);
    edit.putString(last, null);
    edit.commit();

我之前已经在 oncreate 方法之前设置了首选项:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor edit = prefs.edit();

最佳答案

上下文在onCreate之前不可用,因此您不能使用this 这里:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor edit = prefs.edit();

将其放入 onCreate 中,如下所示:

  SharedPreferences prefs;
    SharedPreferences.Editor edit;

和onCreate中

  prefs = PreferenceManager.getDefaultSharedPreferences(this);
  edit = prefs.edit();

关于使用首选项管理器时出现 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21251908/

相关文章:

java - 小部件的所有实例的 GWT setStylePrimaryName

java - 为 Java 音频应用程序调优 GC

java - 在 Android 上执行 AsyncTask/发布 JSON

Android - 是否可以将整个 Bundle 保存到 SharedPreferences 中?

java - 如何在 SharedPreferences 中存储和检索 Location 对象?

Java - 将网络服务器添加到应用程序

java - 将不同的 java 类捆绑在单个 jar 文件中

android - 在 Lollipop 设备上使用 AppCompat-21 崩溃

android - 使用minifyEnabled执行我的应用时出现ClassCastException true

android - 使用复选框和共享首选项进行 Android 设置