我正在用两种语言开发应用程序。用户通过在菜单中选择他们想要的语言来更改区域设置。这有效,除了 Activity 标签之外,所有内容都可以翻译。我尝试了在互联网上找到的所有方法,但似乎没有任何效果。
这是我的 onOptionsItemSelected 代码
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.france) {
Locale mLocale = new Locale("fr");
Locale.setDefault(mLocale);
Configuration config = getBaseContext().getResources().getConfiguration();
if (!config.locale.equals(mLocale)) {
config.locale = mLocale;
getBaseContext().getResources().updateConfiguration(config, null);
}
finish();
Intent getOneIntent = new Intent(this, OneActivity.class);
startActivity(getOneIntent);
} else if(id==R.id.english){
Locale mLocale = new Locale("en");
Locale.setDefault(mLocale);
Configuration config = getBaseContext().getResources().getConfiguration();
if (!config.locale.equals(mLocale)) {
config.locale = mLocale;
getBaseContext().getResources().updateConfiguration(config, null);
}
finish();
Intent getOneIntent= new Intent(this, OneActivity.class);
startActivity(getOneIntent);
}
return super.onOptionsItemSelected(item);
}
最佳答案
我也遇到了同样的问题。更改区域设置语言后,我可以使用 setTitle(getResources.getString(R.string.my_title)) 来“修复”此问题。如果您实现 Fragment,我想应该使用 getActivity().setTitle() 来调用它。另外,我用下一个方法清理任务:
public static void appRestart(Activity Activity ) {
Intent i = new Intent(activity.getBaseContext(), MyClass.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
Activity .startActivity(i);
}
希望对你有帮助...
关于android - 更改 Android 应用程序中的区域设置不会更改 Activity 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32182285/