在Android应用程序中将语言环境更改为ARABIC时出现的问题

时间:2018-09-24 09:02:31

标签: android kotlin configuration locale arabic

我的Android应用程序支持两种语言:阿拉伯语和英语。阿拉伯语是默认语言。

现在,要将阿拉伯语作为默认语言,我将在“启动屏幕”中将应用程序的语言环境更改为阿拉伯语。我还维护了英语和阿拉伯语字符串文件以进行语言环境更改。但是,当我单击其他一些随机片段(例如“导航”菜单项)时,我的应用程序静态字符串会更改回英语语言环境。

我认为这是因为我的应用默认语言环境可能已更改为英语。此问题是随机产生的,没有特别说明。

您能提出任何解决方案吗?

编辑:我正在使用“共享”偏好设置来保存语言。

1 个答案:

答案 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

            }
        }