在Android中,如何将语言环境设置为语言和区域的组合?

在Android中,如何将语言环境设置为语言和区域的组合?,android,locale,arabic,Android,Locale,Arabic,我想将我应用程序中的所有数字格式化为阿拉伯数字(١٣٤٥٦٧٨٩),因此我考虑将语言环境设置为阿拉伯语和地区的组合:埃及,而不仅仅是阿拉伯语,但不幸的是,出于某种原因,没有设置语言环境。 我的区域设置如下: Locale myLocale = new Locale("ar_EG"); Locale.setDefault(myLocale); Configuration config = new Configuration(); config.locale = myLocale; getBaseC

我想将我应用程序中的所有数字格式化为阿拉伯数字(١٣٤٥٦٧٨٩),因此我考虑将语言环境设置为阿拉伯语和地区的组合:埃及,而不仅仅是阿拉伯语,但不幸的是,出于某种原因,没有设置语言环境。

我的区域设置如下:

Locale myLocale = new Locale("ar_EG");
Locale.setDefault(myLocale);
Configuration config = new Configuration();
config.locale = myLocale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
我的strings.xml被放在一个名为“values ar rEG”的文件夹中

我做错了什么


非常感谢。

Locale类可以接收1、2或3个参数,但最好使用2个参数(语言、国家/地区)来更改文本和数字格式以及从右向左语言(即)的方向

我是这样解决的:

 Locale myLocale = new Locale("ar","EG");
    Locale.setDefault(myLocale);
    Resources res = getApplicationContext().getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.setLayoutDirection(myLocale);
    conf.locale = myLocale;
    res.updateConfiguration(conf, dm);

事实上,我们只有阿拉伯语,没有ar_eg或ar_sau,只有“ar”和“values ar”。检查此项可能有助于您更详细地解释您所做的工作?当然,Locale类可以接收1、2或3个参数,最好使用2个参数(语言、国家)来更改从右到左语言的文本和数字格式以及方向。如果需要更多解释,请详细询问我