2013-11-01 76 views
1

我的問題是,我有一個日記應用程序,我通過從自定義日曆視圖中選擇特定日期來添加筆記。 用戶將手機語言從英語更改爲任何其他語言時出現此問題,如果用戶選擇了日語作爲其手機的新語言,則月份名稱將以日語進行轉換。 現在我想,如果用戶選擇除英語以外的任何其他語言也不應該僅以英文顯示月份的名稱。 我搜索了很多,但找不到有用的東西。關於Android應用程序語言

任何積極的迴應將不勝感激。 謝謝。

+0

http://developer.android.com/guide/topics/resources/localization.html – pvllnspk

+0

我想你應該實施自定義壓光機視圖。 –

+0

我只使用自定義日曆,但是當用戶更改他的設備語言時,我的問題就開始了,即使設備語言更改仍然是這個月份的名稱應該就像1月,2月一樣..等等。 –

回答

0

您應該使用自定義日曆,並且當您將日曆以編程方式更改爲Locale(語言)爲英語時。

How to change Locale programatically in android

希望它可以幫助你。

編輯:

您可以使用下面的代碼語言改變:

public void changeLang(String lang) 
{ 
    if (lang.equalsIgnoreCase("")) 
    return; 
    myLocale = new Locale(lang); 
    saveLocale(lang); 
    Locale.setDefault(myLocale); 
    android.content.res.Configuration config = new android.content.res.Configuration(); 
    config.locale = myLocale; 
    getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 
    updateTexts(); 
} 

調用此方法通過傳遞你的語言如:

changeLang("en"); 

注意:必須定義您的文件中的字符串爲英文語言。你應該從String.xml設置你的字符串不是靜態的。

例如,對於你關心你的日曆名稱的設置類似於...

yourtextview.getResources().getString(R.string.january); 
+0

好的。我應用這樣的代碼,Resources res = CalendarView.this.getResources(); \t \t //更改應用程序中的區域設置。 \t \t DisplayMetrics dm = res.getDisplayMetrics(); \t \t android.content.res.Configuration conf = res.getConfiguration(); \t \t conf.locale = new Locale(「English」); \t \t res.updateConfiguration(conf,dm);這是我的自定義日曆班,但是從我的電話設置中選擇中文後,它只顯示中文姓名。 –

+0

有沒有錯誤? –

+0

沒有錯誤,但月份的名稱沒有以英文顯示 –