2

複数のユーザー言語をサポートする Android アプリを開発しています。

アプリでは、java.util.NumberFormat を使用して通貨をフォーマットしています。

String formatCurrency(String amount) {
    // getCurrentLocale determines the locale from the user's selected language; 
    // if the user selects de_DE as the app's language, then this method will return Locale.Germany
    final Locale locale = getCurrentLocale(); 
    final NumberFormat formatter = NumberFormat.getCurrencyInstance(locale);
    return formatter.format(new BigDecimal(amount));
}

私が使用しているテスト デバイスは HTC G2 で、これには英語とスペイン語の 2 つのデバイス言語オプションがあります。

では、アプリのユーザー言語を「de_DE」に選択します。

// When my device language is english, if I call:
System.out.println(formatCurrency("1.79"));
// I got:
1.79 €

// But when I switch my device language to spanish:
System.out.println(formatCurrency("1.79"));
// I got :
1.79 EUR

ここでの私の質問は、どちらの場合でも、NumberFormat で € を取得できるかということです。

4

2 に答える 2

1

Locale表示したい を常に使用しないのはなぜですか? デバイスのLocale.

の場合Locale.ENGLISH:

String formatCurrency(String amount) {
    final NumberFormat formatter = NumberFormat.getCurrencyInstance(Locale.ENGLISH);
    return formatter.format(new BigDecimal(amount));
}
于 2012-07-10T00:08:03.637 に答える
0

これを見てください。

Currency のオブジェクトからgetSymbol()を使用して、問題を解決してください。

于 2012-07-10T00:36:59.830 に答える