java - 如何在 Android Studio 上实现一个按钮来更改语言?

标签 java android

我正在开发一个多语言应用程序,因为它面向非常多样化的公众。我试图通过我在谷歌上找到的一种方法来实现它,但是虽然它似乎有一定的意义(提前抱歉,我不是母语人士也不是真正的程序员),但我没有让它起作用。方法是

package com.example.donafelicidad;

import android.content.res.Resources;
import android.content.res.Configuration;

import java.util.Locale;


public class LanguageHelper {

    public static void changeLocale(Resources res, String locale) {

        Configuration config;
        config = new Configuration(res.getConfiguration());

        switch (locale){
            case "es":
                config.locale = new Locale("es");
                break;
            case "qu":
                config.locale = new Locale("qu");
                break;
           }
        res.updateConfiguration(config, res.getDisplayMetrics());
    }
}
我将此方法应用于按钮,引用为 CHNG_QU 和 CHNG_ES:
CHNG_QU.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                LanguageHelper.changeLocale(getApplicationContext().getResources(), "qu");
                Intent intent = new Intent(MainActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });

        CHNG_ES.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                LanguageHelper.changeLocale(getApplicationContext().getResources(), "es");
                Intent intent = new Intent(MainActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });
我手动更改了语言环境设置,并尝试了它。它完美地变成了另一种语言,所以我猜字符串做得很好。任何有关如何处理此问题的反馈都将不胜感激,即使有必要重新编写整个代码。请使用简单的术语来形容一个正在尽力而为的没有经验的人。
作为旁注,我没有使用其他问题线索,因为我发现的大部分内容已被弃用。

最佳答案

Lingver是一个库,用于强制您的应用程序使用您想要的语言环境资源文件。
在文档中,我找到了 this blogpost在解释每一步的同时实现它,我希望你觉得它有用。

关于java - 如何在 Android Studio 上实现一个按钮来更改语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63409491/

相关文章:

android - 如何从 ejabberd 服务器获取联系人列表

android - 无法在 Mapbox 中创建自定义标记图标

java - 在java中输出图像

java - 如何正确设置自定义事件

java - 可能会抛出 NullPointerException,因为 'value' 此处可为空 Sonar 警告

android - 在后台发送 WhatsApp 消息或发送消息并在 android 中关闭应用程序

java - 找不到方法 setModal(boolean)

Java 在 "."和 "?"上拆分字符串

java - 如何使用Android Studio生成ProGuard混淆?

java - SQL语句给出错误