2012-08-04 49 views
1

我開發的金融應用程序應該使用取決於國家的不同貨幣符號。我使用此代碼:NumberFormat.getCurrencyInstance()在某些國家/地區無法返回正確的符號嗎?

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

我有幾個報告,我的應用程序返回歐元符號,而不是正確的貨幣(在Malysia或印度的例子)。這些用戶聲明他們的系統語言是本國的。我無法證明我自己,因爲我的手機或模擬器上沒有可用的語言。

回答

1

我想你可以試着在你的應用程序中強制一個語言環境,因爲這似乎與如何在設備上設置默認語言環境有關。看到這些鏈接 -

how to choose serbain language from android Emulator settings?

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); 
} 
+0

我不明白。文檔中的語言環境列表非常差http://developer.android.com/reference/java/util/Locale.html根本沒有Malesia,我的客戶說他有Malesian語言環境 – 2012-08-10 07:44:59

+1

我沒有真正與區域設置,但檢查我的編輯。 Locale文檔確實說可用的列表根據設備本身的不同而不同。 – shri046 2012-08-10 14:30:28

+0

你從哪裏得到國家代碼? – 2012-08-10 19:46:19

相關問題