我正在开发一个应用程序,我显式地将应用程序的语言环境设置为阿拉伯语。然而,我想收集英语的电话号码。我如何才能将EditText和TextView的语言环境显式地设置为美国英语。
下面是我如何设置应用程序区域设置的。我有一门助手课
public class LocaleHelper extends ContextThemeWrapper {
public LocaleHelper(Context base) {
super(base, R.style.MyTheme);
}
@SuppressWarnings("deprecation")
public static ContextWrapper wrap(Context context, String language) {
Configuration config = context.getResources().getConfiguration();
if (!language.equals("")) {
Locale locale = new Locale(language);
Locale.setDefault(locale);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
setSystemLocale(config, locale);
} else {
setSystemLocaleLegacy(config, locale);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
config.setLayoutDirection(locale);
context = context.createConfigurationContext(config);
} else {
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
}
}
return new LocaleHelper(context);
}
@SuppressWarnings("deprecation")
private static Locale getSystemLocaleLegacy(Configuration config) {
return config.locale;
}
@TargetApi(Build.VERSION_CODES.N)
private static Locale getSystemLocale(Configuration config) {
return config.getLocales().get(0);
}
@SuppressWarnings("deprecation")
private static void setSystemLocaleLegacy(Configuration config, Locale locale) {
config.locale = locale;
}
@TargetApi(Build.VERSION_CODES.N)
private static void setSystemLocale(Configuration config, Locale locale) {
config.setLocale(locale);
}
}
在我的活动中,我在attachBaseContext
中使用这个助手,如下所示:
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(LocaleHelper.wrap(newBase, "ar"));
}
如何分别为我们设置EditText或TextView的区域设置?
问题是,应用于EditText
的自定义字体没有英文数字,只有阿拉伯数字,所以无论我怎么尝试,只有阿拉伯数字会显示出来,这是有意义的。
您可以使用String.format()
和Locale. ENGLISH
显示英文数字而不是阿拉伯数字
实例
String txtPrice = String.format(Locale.ENGLISH, "%d", item.getPrice());
mItemPriceTextView.setText(txtPrice);
我想强制我的Symfony 2.5应用程序的区域设置为。我希望这个区域设置用于strftime()函数。 我的: 我正在我的一个控制器中使用以下代码来调试: 当这样执行时,它显示:。 但是,当第一行未注释时,它会显示:,因此区域设置已安装在系统中并正常工作。 我如何使Symfony始终使用配置中指定的语言环境? $locale-a:
我安装了三个区域设置捆绑包: JMSi18nRoutingBundle 我的如下所示: 一切都按我的喜好工作,除了我在日志中发现了一个错误: 在堆栈中我发现:的区域设置,但是,我不明白如何将区域设置设置为“en_US”。 我想它来自于对Lunetics的猜测,但是有“en_US”的人应该匹配“en”,而不是“en_US”。 我的主要问题是,我不知道如何跟踪这一点。当我用自己的设置连接到主页时,首先
在*NIX系统上,您可以执行来获取可用区域设置的列表。 什么是Windows中的等效命令(或操作)? 我在Internet上看到过列表,但大多数列表都是区域设置标签,而不是实际的区域设置名称。另外,并不是所有的系统都保证全部安装,对吧? 注意,这里我对“locale”的定义是“locale字符串”,即C的的第二个参数,它将导致一个非空的返回值。 编程答案也很好,我只是厌倦了用暴力猜测Windows
我正在尝试使用Android构建系统中的重新配置和重新配置。 Android Studio 1.2.2版 我在我的项目中遇到了这两个选项的问题,所以我用android studio启动了一个新的空白项目。我附加了我的版本。gradle,我只在下面添加了重新配置“en”,“fr” 定义了2种基本口味 然后我创建了2个字符串。xml文件并翻译了hello\u world默认标签 /src/main/r
我目前正在尝试使用Android Studio为我的大学最后一年项目制作一个DnD字符表应用程序,我在创建布局时遇到了一些问题。我目前正在尝试让TextView将其文本字段作为特定值显示,也就是说,在这种情况下,我希望让它复制EditText组件的值,以便稍后我可以尝试让TextView根据整体统计值显示修改器(即,如果EditText的值为14,则TextView将显示2)。 我的问题是,我不知