簡體   English   中英

更改設備的語言設置(區域設置)

[英]Change language settings (locale) for the device

我知道可以通過res / string在單個應用程序中使用多種語言,具體取決於Locale。 這是控制用戶語言的案例(ANDROID)

現在我該如何更改手機中的語言? 就像我通過菜單>設置>語言和鍵盤>選擇區域設置>語言一樣

是否有一些真正的代碼可以訪問這些設置? 或者我應該為語言設置的快捷方式創建意圖。 請發一些代碼

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

構造函數至少是Locale(String language)輸入是語言。 如何檢索設備上使用的當前語言?

不確定是否直接從應用程序設置它,但如果您想將用戶發送給自己進行更改,請嘗試以下操作:

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

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

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

它只顯示語言列表,當您選擇一種語言時 - 它會更改設備上的語言。

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

吉姆,你的解決方案非常簡單,正是我所需要的。 這是設置的重點。 在您發布之后,我立即在市場上上傳了一個名為“raygional”的應用。 如果我能(我只有6分)我會讓你的答案有用。

還有另一種方法可以查看流程和意圖。 在模擬器上,轉到菜單>開發工具>開發設置>,然后單擊顯示正在運行的進程

據我所知,在不使用Intents(其他解決方案提出的建議)的情況下更改設備的Locale的唯一方法是通過反射訪問內部類(具有這意味着的風險)。

您可以在此處找到此用例的確切示例: http//www.tutorialforandroid.com/2010/07/access-internal-classes-in-android.html

如果您將意圖更改為:以擴展Jim的答案:

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM