gpt4 book ai didi

android - 本地化/语言首选项不会更改 android 中小部件的语言

转载 作者:行者123 更新时间:2023-11-29 20:28:10 25 4
gpt4 key购买 nike

在我的应用程序中,我让用户更改应用程序的语言。我这样做是这样的:

        public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
updateAppWidget(context, appWidgetManager, appWidgetIds[i]);

int appWidgetId = appWidgetIds[i];



//get sharedPreferences
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
//get default local for first initialization
String defaultLanguage = context.getResources().getConfiguration().locale.getLanguage();
Configuration configuration = new Configuration();
//check language preference everytime onCreate of all activities, if there is no choise set default language
Locale newLocaleLanguage = new Locale(sharedPreferences.getString("newLanguagePref",defaultLanguage));
//finally setdefault language/locale according to newLocaleLanguage.
Locale.setDefault(newLocaleLanguage);
configuration.locale = newLocaleLanguage;
context.getResources().updateConfiguration(configuration, context.getResources().getDisplayMetrics());

Log.i("DefaultLanguage", defaultLanguage);
Log.i("PrefferedLanguage",sharedPreferences.getString("newLanguagePref",defaultLanguage));

appWidgetManager.updateAppWidget(appWidgetId, views);


}

我可以使用此代码更改所有 Activity 中的首选本地。但本地化不适用于小部件。小部件始终以手机的本地语言显示。

如您所见,在 LOG 行上,我检查了默认语言和首选语言,一切都很好。它们根据小部件的 onUpdate 方法的语言选择而改变。

在我看来,小部件看不到自定义本地化首选项,因为它在主屏幕上运行并且它看到手机的本地化首选项。对吗?

那么,是不是不能更改小部件的语言?我该如何处理?

最佳答案

But localization doesn't work for widgets.Widgets always appear in local language of phone.

在更改语言环境之前,您正在调用 updateAppWidget(context, appWidgetManager, appWidgetIds[i]);。因此,您通过 updateAppWidget() 中的 getString() 获取的任何字符串都将使用默认设备区域设置。

将您的 updateAppWidget() 调用移到更改进程区域设置的代码之后。如果这没有帮助,请将代码发布到 updateAppWidget(),因为您设置 RemoteViews 的方式可能存在问题。

关于android - 本地化/语言首选项不会更改 android 中小部件的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32299016/

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