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