我目前正在开发一个需要支持英语和阿拉伯语的Android应用,我正在使用此代码从一种语言切换到另一种语言。
String languageToLoad; // your language
if (languageSwitch.isChecked()) {
languageToLoad = "ar";//arabic
} else {
languageToLoad = "en";//english
}
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
// store it in the cache for any further use
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
SharedPreferencesUtil.putString(this, "language", languageToLoad);
工作正常,我已经制作了2个版面设计文件夹,一个普通的文件夹和一个layout-ar
。它可以正常工作,但有时会变得混乱,而不是显示阿拉伯语,而是显示英语布局,并且该应用程序仅在英语模式下继续运行。
答案 0 :(得分:1)
最后,您应该重新开始活动。试试这个。
public void updateActivity() {
Intent intent = new Intent(getActivity(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
答案 1 :(得分:0)
事实证明,Webview是导致此问题的原因,一旦生成Webview,它将删除所有覆盖的本地数据并从设备中插入一个,以纠正问题,您需要按照发现的步骤进行操作在此link中。