2010-04-07 238 views
18

我知道可以通過res /字符串在一個應用程序中使用多種語言,具體取決於語言環境。 這裏是一個案例 (ANDROID) controling the user language更改設備的語言設置(語言環境)

現在我該如何更改手機中的語言? 就像我會通過 菜單>設置>語言&鍵盤>選擇語言環境>語言

有一些實際的代碼來訪問這些設置嗎? 或者我應該創建一個語言設置快捷方式的意圖。 請張貼一些代碼

編輯: 隨着Locale類 developer.android.com/intl/fr/reference/java/util/Locale.html

構造至少區域設置(String語言) 輸入是語言。 如何檢索設備上使用的當前語言?

回答

40

不確定直接從應用程序設置,但如果你想有發送用戶去改變它自己,試試這個:

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setClassName("com.android.settings", "com.android.settings.LanguageSettings");    
startActivity(intent); 
+0

嘿吉姆, 非常感謝。 只是另一個問題,你是如何知道設置的包名和類名的? – 2010-04-07 23:40:02

+5

我所做的是在使用USB連接到我的PC時使用手機,然後查看logcat輸出。每個啓動的Intent都記錄到輸出中。閱讀I/ActivityManager(1018):開始活動:Intent {act = android.intent.action.MAIN cmp = com.android.settings/.LanguageSettings}在預感上,我進入Google Code Search並搜索「LanguageSettings Android意圖「,並找到了一個人做這個的例子。我自己測試了它,並簡化了代碼片斷。 – 2010-04-07 23:55:19

+0

我對自己的問題找到了另一個答案。 有一個開放源代碼項目 http://code.google.com/p/languagepickerwidget/ 它重新創建一個ListActivity來顯示和選擇語言。 吉姆,你的解決方案非常簡單,正是我所需要的。這是對設置的快速切入。在您發佈後,我立即在市場上上傳了一個名爲「raygional」的應用程序。如果我可以(我只有6分),我會讓你的答案有用。 還有另一種方法來查看過程和意圖。在模擬器上,進入菜單>開發工具>開發設置>,然後點擊顯示正在運行的進程。 – 2010-04-10 14:42:36

6

我發現了另一個答案,我自己的問題。 有一個開源代碼項目code.google.com/p/languagepickerwidget 它重新創建一個ListActivity來顯示和選擇語言。

吉姆,你的解決方案非常簡單,正是我所需要的。這是對設置的快速切入。在您發佈後,我立即在市場上上傳了一個名爲「raygional」的應用程序。如果我可以(我只有6分),我會讓你的答案有用。

還有另一種方法來查看過程和意圖。在模擬器上進入菜單>開發工具>開發設置>,點擊查看正在運行的進程

+0

是否有任何其他項目與此類似,它展示瞭如何改變操作系統的區域設置,但是使用Apache許可證或類似的東西? – 2014-03-29 19:04:50

1

爲了擴大對吉姆的答案,如果你改變的意圖:關閉直接

intent.setClassName("com.android.settings", "com.android.settings.LocalePicker"); 

它會刪除用戶語言選擇列表,一旦選擇了語言,它將返回到您的應用程序。

它消除了點擊,不會讓用戶考慮三種(語言,詞典和鍵盤)選項中的哪一種選擇,並在選擇後立即返回到您的應用程序。

+0

在Samsung Galaxy Tab 2上無法正常工作(導致ActivityNotFoundException:無法找到顯式活動類)。是否有更新的意圖可用? – Jane 2013-03-11 13:20:45

+0

這不適用於三星Galaxy S2 s – dumazy 2013-04-19 09:42:39

+0

這不適用於Android 4.4.2 – 2016-03-30 09:28:29

11

還有另一種方式來打開系統設置更改語言:

Intent i = new Intent(android.provider.Settings.ACTION_LOCALE_SETTINGS); 
startActivity(i); 

這表明僅僅是語言列表中,當你選擇一個時 - 它會改變設備上的語言。

+1

這種方法的缺點是,如果用戶按左上角的圖標(旁邊有「<」),它會返回到「語言和輸入」屏幕。 – CJBS 2014-08-26 22:52:18