我正在用英语和印尼语两种语言申请。 为此我在res文件夹中创建了两个字符串文件(values-en和values-in)
在我的一个活动中,我选择语言并更改语言环境。我正在使用以下代码执行此操作 -
将语言ID传递给此方法 -
public void setLocale(String lang) {
Locale myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}
但是在将语言改为印尼语之后发生了奇怪的事情。我的一些文本改为印尼语,有些改为英语。
例如 - 我在活动中有两个按钮(提交和上传收据)。
SUBMIT btn有 - 在英语中,它的文字是提交,而在印度尼西亚语则是KIRIM
<string name="submit_btn_text">Submit</string> for english
<string name="submit_btn_text">Kirim</string> for indonesian
和UPLOAD RECEIPT btn有 - 在英文中,它的文字是上传收据,在印尼语中是上传Penerimaan
<string name="upload_receipt">Upload Receipt</string> for english
<string name="upload_receipt">Upload Penerimaan</string> for indonesian
但是在印度尼西亚语中 将btn文本chanes提交给 Kirim 但上传收据btn仍然是“上传收据”。它不会改为上传Penerimaan。
这是如何发生的,因为其他文本按照区域设置进行调整。 此外,我在弹出的所有对话框中都面临同样的问题。在所有对话框中,文本仍然保留为英文。
应该做什么?
答案 0 :(得分:0)
尝试按照其他答案的建议重新启动您的活动,请查看Ben的回答How do I restart an Android Activity
public void reload() {
Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);
}