Android - 更改语言环境(语言)

标签 android locale

我正在尝试添加语言 Controller ,这意味着更改我的应用程序的语言。

我添加了 4 个标志 (ImageView),每当我按下我想要的标志时,我希望应用根据该标志更改语言。

Main Menu

应用程序一开始是英文的,当我按下丹麦语 falg 时,语言确实会切换到丹麦语,但每当我想改回英文时,什么也没有发生。

我在它们自己的值文件夹中制作了几个 strings.xml 文件

value-en/strings.xml
value-dk/strings.xml

方法改变语言:

english.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Locale locale = new Locale("en");
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getResources().updateConfiguration(config,getResources().getDisplayMetrics());
            setContentView(R.layout.activity_main);
    }
});

english 是我的 ImageView 变量

最佳答案

我找到了我的解决方案。

为了在我的其他组件上保存 onClickListener(),我需要刷新 Activity ,如下所示:

重启 Activity

我只是做了一个像下面这样的方法:

//Restarts the activity after changing the languagse
private void RestartActivity(){
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}

每次更改语言时,我都会运行以下方法:

english.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Locale locale = new Locale("en");
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getResources().updateConfiguration(config,getResources().getDisplayMetrics());
        setContentView(R.layout.activity_main);
        RestartActivity(); //Run the method as the last thing
    }
});

出于某种原因,听众没有看到 mto 留下来,但这个解决方案对我有用。

关于Android - 更改语言环境(语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479727/

相关文章:

Perl 语言环境警告 Debian

java - 如何在java中将字符串转换为语言环境

java - 创建 Android 应用程序的 PHP 后端

Android:折叠通知中的额外间距

java - 尝试在android中将数据从数据库加载到ListView

android - 有没有办法让 Activity 知道刚刚创建了什么 fragment ?

unicode - 如何破解 GHCi(或 Hugs)以便打印未转义的 Unicode 字符?

android - Try-with-resources 需要 API 级别 19 (OkHttp)

c++ - 将 LCID 转换为语言字符串

javascript - 将 locale 参数附加到 rails 中 js-routes gem 生成的所有路径