Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:如何让应用程序区域设置独立于系统区域设置工作?_Java_Android_Android Studio_Locale - Fatal编程技术网

Java Android:如何让应用程序区域设置独立于系统区域设置工作?

Java Android:如何让应用程序区域设置独立于系统区域设置工作?,java,android,android-studio,locale,Java,Android,Android Studio,Locale,我有一个与显示语言相关的问题。我能够独立于操作系统更改应用程序内部的语言(英语为“en”,日语为“ja”) 但是,问题是,当应用程序处于“ja”状态时,如果用户手动更改系统语言(而不是“en”或“ja”),则我的应用程序会自动将语言更改为默认语言(“en”)。我想让我的应用程序的语言环境独立,无论用户手动更改何种语言,应用程序的语言仍然与他们注销时相同 编辑 有一些有用的链接,但它们仍然不能解决我的问题。例如: 你能给我一些建议吗 提前谢谢你 : 添加: @Override public vo

我有一个与显示语言相关的问题。我能够独立于操作系统更改应用程序内部的语言(英语为“en”,日语为“ja”)

但是,问题是,当应用程序处于“ja”状态时,如果用户手动更改系统语言(而不是“en”或“ja”),则我的应用程序会自动将语言更改为默认语言(“en”)。我想让我的应用程序的语言环境独立,无论用户手动更改何种语言,应用程序的语言仍然与他们注销时相同

编辑 有一些有用的链接,但它们仍然不能解决我的问题。例如:

你能给我一些建议吗

提前谢谢你

添加:

@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()的代码。请重试。