以布尔格式保存共享首选项时出错

时间:2016-06-15 16:25:13

标签: java android boolean sharedpreferences

阅读后保存共享偏好设置时出错

@Override
public void onCreate( Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mUserLearneddrawer = Boolean.valueOf(readPreferences(getActivity(),KEY_USER_LEARNED_DRAWER,"false"));

}
 public static void readPreferences(Context context,String prefernceName,String defaultValue) {
    SharedPreferences sharedPrefernces = context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPrefernces.edit();
    editor.putString(prefernceName, defaultValue);
    editor.apply();
}

1 个答案:

答案 0 :(得分:2)

由于您的Boolean.valueOf(void)方法返回无效,而不是readPreferences或{{1},因此您尝试获取Boolean,因此引发了异常}。为了解决这个问题,您需要更改该方法以返回从首选项中读取的内容。这应该是这样的:

bool

修改

正如我从您编辑的问题中看到的那样,您实际上在<{1}}方法中写这一点非常违反直觉。无论如何,既然你只是写一个值并且只是应用这个:

public bool readPreferences(Context ctx, String key, boolean default){
     return ctx.getSharedPreferences.getBoolean(key, default);
}

不要将此值分配给任何内容,因为这不会返回任何内容(返回readPreferences)。