java - Android:如何让 App Locale 独立于 System Locale 工作?

标签 java android android-studio locale

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

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

编辑

有一些有用的链接,但它们仍然不能解决我的问题。例如: Change language programatically in Android

你能给我一些建议吗?

提前致谢!

最佳答案

Try this one :

import java.util.Locale; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.content.res.Configuration; 
import android.content.res.Resources; 
import android.util.DisplayMetrics; 

public void setLocale(String lang) { 
    myLocale = new Locale(lang); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf, dm); 
    Intent refresh = new Intent(this, AndroidLocalize.class); 
    startActivity(refresh); 
    finish();
} 

已添加:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    newConfig.setLocale(yourLocale);
    super.onConfigurationChanged(newConfig);
}

已添加(2):

您必须设置 android:configChanges="layoutDirection|locale" 以便在您更改 Locale 时触发 onConfigurationChanged()。< br/> 我不能完全理解为什么会这样,也许有一些 RTL 语言......

关于java - Android:如何让 App Locale 独立于 System Locale 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36192791/

相关文章:

java - 当前 Java 的 OpenCL 实现是否提供跨平台支持以及在项目中使用的稳定性?

php - Android 设备无法连接到本地主机

安卓json解析

Android:两个事件监听器 - 如何调用两者

android - 在 Android Studio 和 Gradle 中使用 ViewPagerIndicator 库

android - 无法解决 ':app@debug/compileClasspath' : Could not resolve com. android.support :appcompat-v7:26. 1.0 的依赖关系

java - LayoutWeights 无法正确缩放元素

java - 是否可以让 Eclipse 在 buildr 之外的另一个目录中编译其类?

java - 为什么 Tomcat 会为现有的 JAR 文件抛出 FileNotFoundExceptions?

android - 无法解析代码路径 `FileUtils` 教程中的符号 `Todo App` (Android)