1

国によって異なる通貨記号を使用する金融アプリを開発しています。私はこのコードを使用しています:

Float value = 100;
TextView tv = (TextView) view;
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
tv.setText(currencyFormat.format(value));

私のアプリが正しい通貨ではなくユーロ記号を返しているという報告がいくつかあります(たとえば、マレーシアやインド)。それらのユーザーは、システム言語が自国に固有であると述べています。私の電話やエミュレーターで利用できるそのような言語がないので、私は自分自身を証明することはできません。

4

1 に答える 1

1

これは、デバイスでデフォルトのロケールがどのように設定されているかに関連しているように思われるため、アプリでロケールを強制的に試すことができると思います。これらのリンクを参照してください-

Androidエミュレータ設定からセルベイン言語を選択する方法は?

http://www.tutorialforandroid.com/2009/01/force-localize-application-on-android.html

これは、ユーザーがデバイスで報告した問題を再現するのに役立つ可能性があります。

編集: 私はこれを自分でテストしていませんが、あなたの場合はうまくいく可能性があります。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String languageToLoad  = "en";
    String countryToLoad = "MY"; // 2 digit country code for Malaysia
    Locale locale = new Locale(languageToLoad, countryToLoad); 
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config, 
    getBaseContext().getResources().getDisplayMetrics());
    this.setContentView(R.layout.main);
}
于 2012-08-06T14:58:17.883 に答える