扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
就是这样!使用资源文件管理不同地区的本地化字符串,将图片的二进制文件转换为所有地区都可以使用的通用资源。ResourceManager 类将根据系统默认地区或您在构造函数中指定的地区来装载资源文件。现在您可以使用一种更快、更简单的方法来本地化菜单、按钮和消息了。
数据格式化
每一个地区都有自己的文化,都采用自己的方式显示日期、时间、数字、百分数和货币数据。Formatter 类可以满足格式化此类数据的全部需求。表 3 显示了它所提供的类。
表 3. 数据格式化方法
日期和时间 | formatDateTime(java.util.Calendar dateTime, int style) |
数字和百分比 | formatNumber(double number) formatNumber(double number, int decimals) formatNumber(long number) formatPercentage(float value, int decimals) formatPercentage(long value) |
货币值 | formatCurrency(double number) formatCurrency(double number, java.lang.String currencyCode) |
现在将编写一个简单的 MIDlet 程序来显示日期、时间、数字、百分比和货币数据。
|
步骤 1:构造一个 Formatter 实例
您可以指定地区,也可使用系统默认地区。下面是所需要的代码:
//Using system default locale Formatter fmt = new Formatter(); //Specify the locale Formatter fmt = new Formatter("zh-TW"); |
步骤 2:创建可编辑文本字段。
您希望创建可编辑的文本文件以使用户输入数字、百分数、货币数据等等。您需要这些文本字段的内容和对其进行格式化的 Formatter 类方法,如 清单 2 所示。
清单 2. 数据格式化
public String formatNumber(double number){ return fmt.formatNumber(number); } public String formatPercentage(float number, int decimals){ return fmt.formatPercentage(number,decimals); } public String formatCurrency(double number){ return fmt.formatCurrency(number); } ..... //Process events public void commandAction(Command c, Displayable s) { if (c == cmExit) { destroyApp(false); notifyDestroyed(); } else if( c == cmFormat) { //Number formatting double num = Double.parseDouble(tfNumeric.getString()); siResultNum.setText(this.formatNumber(num)); //Percentage formatting float percentage = Float.parseFloat(tfPercentage.getString()); siResultPercent.setText(this.formatPercentage(percentage,2)); //Currency formatting double curr = Double.parseDouble(tfCurrency.getString()); siResultCurr.setText(this.formatCurrency(curr)); //Display the result displayResult(); } |
现在运行 MIDlet。表 4 显示了应获得的结果。(注意:我为 zh-TW 使用了一种不同的字体。)
表 4. Formatter MIDlet
zh-TW 地区 | de-DE 地区 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者