gpt4 book ai didi

java - 如何从 updateBaseContextLocale 调用 getSharedPreferences

转载 作者:行者123 更新时间:2023-12-01 19:13:49 25 4
gpt4 key购买 nike

我需要访问 updateBaseContextLocale 上的 SharedPreferences,它在 onCreate 之前运行。当我从 updateBaseContextLocale 调用 SharedPreferences 时,出现以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference

如果我从 onCreate 调用 getSharedPreferences,则更改区域设置为时已晚。这是我需要运行的代码:

    private Context updateBaseContextLocale(Context context) {
SharedPreferences prefs = getSharedPreferences("Settings", MODE_PRIVATE);
String language = prefs.getString("Language", "en");
Locale locale = new Locale(language);
Locale.setDefault(locale);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return updateResourcesLocale(context, locale);
}
return updateResourcesLocaleLegacy(context, locale);
}

最佳答案

而不仅仅是:SharedPreferences prefs = getSharedPreferences("设置", MODE_PRIVATE);

使用方法参数中收到的上下文来获取 SharedPrefs:

SharedPreferences prefs = context.getSharedPreferences("设置", MODE_PRIVATE);

关于java - 如何从 updateBaseContextLocale 调用 getSharedPreferences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59441930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com