我的Android应用程序支持两种语言:阿拉伯语和英语。阿拉伯语是默认语言。
现在,为了将阿拉伯语设置为默认语言,我在Splash Screen中将应用程序的区域设置更改为阿拉伯语。我还维护了英语和阿拉伯语的字符串文件,以便进行区域设置更改。但是,当我点击其他一些随机片段时(例如,导航菜单项),我的应用程序静态字符串将更改回英语区域设置。
我认为这是因为我的应用程序默认区域设置可能已更改为英语。这个问题是随机生成的,没有记录任何特定的场景。
你能提出什么解决方案吗?
编辑:我正在使用共享首选项来保存语言。
发布于 2018-09-24 17:49:17
第一步,将语言保存在sqlite中(例如:保存在sqlite表设置中的语言):
mDatabase = new SqliteItemDatabase(getApplicationContext());
final List<Setting> allsettings = mDatabase.listSettings();
String the_lang = "";
if(position == 0)
{
the_lang = "en";
}
else if(position == 1)
{
the_lang = "ar";
}
LocaleHelper.setLocale(LAngSelect.this, the_lang);// =>set language
mDatabase.updateSettings(new Setting(allsettings.get(0).getId(),the_lang));
mDatabase.close();第二步:从右到左设置您想要添加到每个活动中的活动:
mDatabase = new SqliteItemDatabase(this);
final List<Setting> allsettings = mDatabase.listSettings();
String langs = allsettings.get(0).getLang() ;
if(langs.equals("ar")) {
//HERE CHECK CONDITION FOR YOUR LANGUAGE if it is AR then
//change if it is english then don't
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
//Resources res = getResources(); //resource handle
}
}https://stackoverflow.com/questions/52475828
复制相似问题