阅读后保存共享偏好设置时出错
@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();
}
答案 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
)。