Java 如何在android应用程序中以编程方式在两种语言之间切换?

Java 如何在android应用程序中以编程方式在两种语言之间切换?,java,android,Java,Android,我需要在android应用程序内部的两种语言之间切换。 现在,我在两个不同的文件夹中的两个strings.xml文件中有两种不同语言的字符串值,一个在values文件夹(默认情况下)下,另一个在values fr(法语)下,这是在android studio中尝试在language下编辑翻译时创建的。但我不知道如何在两种语言之间切换。 它显示默认语言(即英语),但不知道如何实现切换到其他语言的方法 有没有人有简单的方法来实现它…?您可以使用locale类来实现它。希望这对您有所帮助 pub

我需要在android应用程序内部的两种语言之间切换。 现在,我在两个不同的文件夹中的两个strings.xml文件中有两种不同语言的字符串值,一个在values文件夹(默认情况下)下,另一个在values fr(法语)下,这是在android studio中尝试在language下编辑翻译时创建的。但我不知道如何在两种语言之间切换。 它显示默认语言(即英语),但不知道如何实现切换到其他语言的方法


有没有人有简单的方法来实现它…?

您可以使用locale类来实现它。希望这对您有所帮助

   public class LocaleLanguage {

    private static Locale mLocale;

    public static void setLocale(Locale locale) {
        mLocale = locale;
        if(mLocale != null) {
            Locale.setDefault(mLocale);
        }
    }

    public static void updateConfig(ContextThemeWrapper wrapper) {
        if(mLocale != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            Configuration configuration = new Configuration();
            configuration.setLocale(mLocale);
            wrapper.applyOverrideConfiguration(configuration);
        }
    }

    public static void updateConfig(Application app, Configuration configuration) {
        if(mLocale != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
            //Wrapping the configuration to avoid Activity endless loop
            Configuration config = new Configuration(configuration);
            config.locale = mLocale;
            Resources res = app.getBaseContext().getResources();
            res.updateConfiguration(config, res.getDisplayMetrics());
        }
    }
}
这是你的活动指南

 public class MainActivity extends Activity {
    public BaseActivity() {
        LocaleUtils.updateConfig(this);
    }
}
要了解更多信息,请参阅本教程。请参阅您可以使用的

以下是文件摘录:

在您的电脑中支持多种语言,保持冷静和轻松 android应用程序

支持多种语言是android应用程序的基本要求。 是 啊这很容易,因为android有字符串资源。开发商 只需准备不同语言的文本即可 系统将使用自身。但问题往往是“准时”语言 改变”。因为字符串资源的设计依赖于 当前设备语言。但是如果我们想通过 点击一些按钮。这将很难处理。这个问题 将被解决,因为我已经创建了一个新的库来处理应用程序 语言。它被称为“本地化活动”库

下面是文档中使用它的示例:

import android.os.Bundle;
import android.view.View;

import com.akexorcist.localizationactivity.LocalizationActivity;

public class MainActivity extends LocalizationActivity implements View.OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_simple);

        findViewById(R.id.btn_th).setOnClickListener(this);
        findViewById(R.id.btn_en).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.btn_en) {
            setLanguage("en");
        } else if (id == R.id.btn_th) {
            setLanguage("th");
        }
    }
}

在上面的示例中,当用户单击按钮时。它将更改为英语或泰语。

试试本教程谢谢,伙计……我会试试本教程OK试试本教程。如果您有疑问,请告诉我。:)我发现很难切换……实际上我需要开发一个默认为英语的应用程序,每当我按下actionbar中的按钮,它就会在泰米尔语和英语之间切换(默认)…如果您有任何实现方法,请在此处共享…我正在我的应用程序中实现此功能,请遵循[link]()一步一步地满足您的要求。:)thnx frnd….我们将尝试
import android.os.Bundle;
import android.view.View;

import com.akexorcist.localizationactivity.LocalizationActivity;

public class MainActivity extends LocalizationActivity implements View.OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_simple);

        findViewById(R.id.btn_th).setOnClickListener(this);
        findViewById(R.id.btn_en).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.btn_en) {
            setLanguage("en");
        } else if (id == R.id.btn_th) {
            setLanguage("th");
        }
    }
}