首页 文章

更改设备的语言设置(区域设置)

提问于
浏览
18

我知道可以通过res / string在单个应用程序中使用多种语言,具体取决于Locale . 这是一个案例(ANDROID) controling the user language

现在我该如何更改手机中的语言?就像我通过菜单>设置>语言和键盘>选择区域设置>语言一样

是否有一些真正的代码可以访问这些设置?或者我应该为语言设置的快捷方式创建意图 . 请发一些代码

编辑:使用Locale类developer.android.com/intl/fr/reference/java/util/Locale.html

构造函数至少是Locale(String language)输入是语言 . 如何检索设备上使用的当前语言?

5 回答

  • 6

    不确定是否直接从应用程序设置它,但如果您想将用户发送给自己进行更改,请尝试以下操作:

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

    还有另一种方法可以打开系统设置来更改语言:

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

    它只显示语言列表,当您选择一种语言时 - 它会更改设备上的语言 .

  • 1

    我找到了自己问题的另一个答案 . 有一个开源代码项目code.google.com/p/languagepickerwidget它正在重新创建一个ListActivity来显示和选择语言 .

    吉姆,你的解决方案非常简单,正是我所需要的 . 这是设置的重点 . 在您发布后,我立即在市场上上传了一个名为“raygional”的应用 . 如果我能(我只有6分),我会让你的答案有用 .

    还有另一种方法可以查看流程和意图 . 在模拟器上,转到菜单>开发工具>开发设置>,然后单击显示正在运行的进程

  • 12

    据我所知,在不使用Intents(其他解决方案建议的内容)的情况下更改设备的Locale的唯一方法是通过反射访问内部类(具有这意味着的风险) .

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

  • 43

    如果您将意图更改为:以扩展Jim的答案:

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

    它会直接在语言选择列表中删除用户,一旦选择了语言,它将返回到您的应用程序 .

    它会删除单击,不会让用户考虑选择三个(语言,词典和键盘)选项中的哪一个,并在选择后立即返回到您的应用程序 .

相关问题