我的Android应用程序支持两种语言:阿拉伯语和英语。阿拉伯语是默认语言。
现在,要将阿拉伯语作为默认语言,我将在“启动屏幕”中将应用程序的语言环境更改为阿拉伯语。我还维护了英语和阿拉伯语字符串文件以进行语言环境更改。但是,当我单击其他一些随机片段(例如“导航”菜单项)时,我的应用程序静态字符串会更改回英语语言环境。
我认为这是因为我的应用默认语言环境可能已更改为英语。此问题是随机产生的,没有特别说明。
您能提出任何解决方案吗?
编辑:我正在使用“共享”偏好设置来保存语言。
答案 0 :(得分:0)
第一步是要在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
}
}