gpt4 book ai didi

java - 区域设置更改后不会调用 OnConfigurationChanged

转载 作者:太空狗 更新时间:2023-10-29 14:51:57 26 4
gpt4 key购买 nike

我想做的是在应用程序中为用户提供简单的语言更改。当前 View 的文本以及返回堆栈应替换为所选语言的字符串。我刚刚编写了以下代码 fragment ,可以很好地完成他的工作:

private void setLocale(Locale locale) {
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
}

经过一些研究后我发现,在语言环境配置更改后,每个 Activity 都应该自动刷新 - 但在我的情况下不是这样。当前 View 以及整个 Back Stack 仍然具有默认语言环境 - 它们只是在重新打开 Activity 后发生变化。

我已经将属性 android:configChanges="locale|layoutDirection" 添加到我的 AndroidManifest.xml 中,这样就不会成功了。

你们有什么建议吗?还是我解决这个问题的目的是错误的?

编辑
好吧,似乎 OnConfigurationChanged() 只能通过在 android 设置中更改设备范围内的语言来触发?
在更改我的应用程序中的语言后,是否有任何其他方法可以刷新每个 Activity Activity (当前和返回堆栈)?

最佳答案

我认为如果您创建一个具有此事件过滤器的接收者

<action android:name="android.intent.action.LOCALE_CHANGED"/>当设备区域设置更改时会给你一个事件,然后你可以刷新你想要的所有 Activity 。要刷新,您可以查看 this .希望它能解决您的问题。

关于java - 区域设置更改后不会调用 OnConfigurationChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561173/

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