Java Android:如何让应用程序区域设置独立于系统区域设置工作?
我有一个与显示语言相关的问题。我能够独立于操作系统更改应用程序内部的语言(英语为“en”,日语为“ja”) 但是,问题是,当应用程序处于“ja”状态时,如果用户手动更改系统语言(而不是“en”或“ja”),则我的应用程序会自动将语言更改为默认语言(“en”)。我想让我的应用程序的语言环境独立,无论用户手动更改何种语言,应用程序的语言仍然与他们注销时相同 编辑 有一些有用的链接,但它们仍然不能解决我的问题。例如: 你能给我一些建议吗 提前谢谢你 : 添加:Java Android:如何让应用程序区域设置独立于系统区域设置工作?,java,android,android-studio,locale,Java,Android,Android Studio,Locale,我有一个与显示语言相关的问题。我能够独立于操作系统更改应用程序内部的语言(英语为“en”,日语为“ja”) 但是,问题是,当应用程序处于“ja”状态时,如果用户手动更改系统语言(而不是“en”或“ja”),则我的应用程序会自动将语言更改为默认语言(“en”)。我想让我的应用程序的语言环境独立,无论用户手动更改何种语言,应用程序的语言仍然与他们注销时相同 编辑 有一些有用的链接,但它们仍然不能解决我的问题。例如: 你能给我一些建议吗 提前谢谢你 : 添加: @Override public vo
@Override
public void onConfigurationChanged(Configuration newConfig) {
newConfig.setLocale(yourLocale);
super.onConfigurationChanged(newConfig);
}
增加了(2):
@Override
public void onConfigurationChanged(Configuration newConfig) {
newConfig.setLocale(yourLocale);
super.onConfigurationChanged(newConfig);
}
您必须设置android:configChanges=“layoutDirection | locale”,以便在更改区域设置时触发OnConfiguration Changed()
我不能完全理解为什么会发生这种情况,也许有一些RTL
语言 可能重复的我正在使用相同的方式,这是在您的链接中提到的,但我遇到的问题。谢谢你的链接,我会更新我的问题。如果你能解释你的答案会更好。考虑一下你的代码是如何工作的。@ Suhyeon Lee:这就是我在我的应用程序中使用的。是否有任何方法确保用户只能在应用程序内更改语言环境?应用程序的区域设置将不受系统区域设置的影响。即使用户更改了系统区域设置,应用程序仍然保持不变locale@LuongTruong如果您将android:configChanges=“locale”设置到应用程序中,那么我认为您可以尝试覆盖活动中的onConfigurationChanged(),并立即返回或更改区域设置。@Suhyeon Lee:我还将android:configChanges=“locale”放在活动AndroidManifest中。在活动内部,我覆盖onConfigurationChanged(),但当我更改区域设置时,不会调用onConfigurationChanged()(@LuongTruong添加了强制触发onConfigurationChanged()的代码。请重试。