我需要在我的应用程序中显示货币值。使用RIM API似乎没有一种简单的方法可以做到这一点,所以我不得不创建自己的解决方案(不幸的是,黑莓开发常见的副词)
目前我正在使用Formatter
类,javax.microedition.locale
就像这样
protected String formatResult(double result)
{
try {
Locale l = Locale.getDefaultForSystem();
Formatter formatter = new Formatter(l.toString());
return formatter.formatCurrency(result);
} catch (UnsupportedLocaleException e)
{
return "This fails for the default locale because BlackBerry sucks";
}
}
我始终点击模拟器中的catch
块。由于这在模拟器上默认不起作用,我对将它放在应用程序中犹豫不决。
有谁能告诉我上述解决方案是否可行?当然,如何解决它。
答案 0 :(得分:2)
来自Blackberry.com的javax.microedition.global.Formatter
javadoc:
此Formatter类的实现此时仅支持与区域设置无关的格式。
此外,BB支持论坛的开发人员在this topic中提到了以下内容:
Currnetly Formatter类只支持“en”local。
所以,我觉得你很丢失。
答案 1 :(得分:1)
BalusC是正确的,目前唯一支持的语言环境是“en”。您的示例应略微调整(至少对于“en”语言环境;)):
protected String formatResult(double result)
{
try {
Formatter formatter = new Formatter("en");
return formatter.formatCurrency(result);
} catch (UnsupportedLocaleException e)
{
return "This fails for the default locale because BlackBerry sucks";
}
}
API documentation声明:“结果使用特定于语言环境的小数分隔符,可能包括分组分隔符。”在实践中,我不包括分组分隔符(我没有得到任何美元金额的逗号> = 1000)。