gpt4 book ai didi

android - 如何以编程方式更改语言?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:04:32 27 4
gpt4 key购买 nike

我想以编程方式更改语言。

所以我构建了两个 xml 文件。

values-it
-->string.xml

values-en
-->string.xml

这是 MainActivity 中更改整个应用程序语言的代码:

//意大利语

Resources res = getApplicationContext().getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale("it");
res.updateConfiguration(conf, dm);

//英文

Resources res2 = getApplicationContext().getResources();
DisplayMetrics dm2 = res2.getDisplayMetrics();
android.content.res.Configuration conf2 = res2.getConfiguration();
conf2.locale = new Locale("en");
res2.updateConfiguration(conf2, dm2);

现在,如果我设置英语(例如)代码执行时没有错误,但标签不会更改其文本。
如果我更改设备的方向,标签会正确更改其文本。

现在如何修改我的代码以自动刷新标签?

最佳答案

 AlertDialog.Builder builder = new AlertDialog.Builder(DashboardActivity.this);
builder.setTitle(R.string.languages);
// Add the buttons
builder.setPositiveButton(R.string.english, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String languageToLoad = "en"; // your language
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
dialog.dismiss();
rEditor.putString("language", languageToLoad);
rEditor.commit();



Intent refresh = new Intent(DashboardActivity.this, DashboardActivity.class);
startActivity(refresh);
finish();

}
});
builder.setNegativeButton(R.string.gujarati, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog

String languageToLoad = "gu"; // your language
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
dialog.dismiss();
rEditor.putString("language", languageToLoad);
rEditor.commit();


Intent refresh = new Intent(DashboardActivity.this, DashboardActivity.class);
startActivity(refresh);
finish();

}
});

builder.create().show();

您必须重新加载 Activity 才能显示新语言文本意味着重新启动。

关于android - 如何以编程方式更改语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37454353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com