Android:如何为应用程序设置文化值
Posted
技术标签:
【中文标题】Android:如何为应用程序设置文化值【英文标题】:Android: How to set culture values for application 【发布时间】:2012-01-29 15:16:52 【问题描述】:) 我是一名 C# 开发人员,现在我开始为 android 编写应用程序。在 C# 中,我们有 CultureInfo 对象,我们可以在其中设置应用程序文化的值。 java(android)中有一个类似的对象可以让我这样做¿?我发现我可以用这个 Locale.setDefault(Locale.FRENCH); 设置语言环境。但是我如何设置日期、数字和货币符号¿?
这是我使用的 C# 代码:
CultureInfo objCultureInfo = new CultureInfo("en-US", true);
objCultureInfo.NumberFormat.NumberDecimalDigits = 2;
objCultureInfo.NumberFormat.NumberDecimalSeparator = ".";
objCultureInfo.NumberFormat.NumberGroupSeparator = ",";
objCultureInfo.DateTimeFormat.DateSeparator = "/";
objCultureInfo.DateTimeFormat.TimeSeparator = ":";
objCultureInfo.DateTimeFormat.FullDateTimePattern = "MM/dd/yyyy HH:mm:ss";
objCultureInfo.DateTimeFormat.ShortDatePattern = "MM/dd/yyyy";
objCultureInfo.DateTimeFormat.ShortTimePattern = "HH:mm:ss";
objCultureInfo.NumberFormat.CurrencySymbol = "$";
Cultura.CulturaAplicacion = objCultureInfo;
谢谢!
【问题讨论】:
【参考方案1】:在我看来,您根本不应该更改 Locale 值。用户在设置中设置此值设备范围。您也可以在那里设置日期和时间格式。您应该在您的应用中使用这些值,而不是用自定义值覆盖它们,因为用户更清楚他/她想要使用哪种语言和格式。
【讨论】:
好的,但是如果我想知道用户在他的移动设备中设置的数字小数分隔符的类型,或者他看到的日期是哪种格式¿?我问这个是因为我必须以特定方式保存浮点数、长数字和日期,所以必须在保存之前格式化和转换值。 我支持 Henrik,如果您的应用程序支持多语言,预计会出现重大问题。如果您需要使用特定格式,请选择您自己的预定语言设置,并让用户设置的用户区域设置处理所有显示格式。如果没有语言环境支持您对本地存储的首选设置,请手动对其进行格式化或创建自己的格式化程序,而不是更改现有的语言环境。【参考方案2】:我想我在这里找到了我需要的东西:
http://developer.android.com/reference/java/text/NumberFormat.html
谢谢!
【讨论】:
以上是关于Android:如何为应用程序设置文化值的主要内容,如果未能解决你的问题,请参考以下文章
如何为编码的 UI 测试设置文化以从资源文件中获取本地化文本?
Android:如何为 Android ListView 实现这样的操作?