在我的案例中更改应用程序级别的区域设置

时间:2012-03-27 10:29:59

标签: android android-layout android-intent android-emulator android-widget

我想在应用级别更改应用程序语言。我有values-fr/string.xmlvalues-cn/string.xmlvalues-en/string.xml

在我的应用程序Java代码中,我有一个对话框,它显示了一个语言选项列表,我尝试使用以下代码来更改我的应用程序的语言:

//user select a language from the dialog list
language_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {


             String language="";
             switch (position) {
                case 0:
                    language="fr";
                    break;
                case 1:
                    language="cn";
                    break;
                case 2:
                    language="en";
                    break;
             }

             Locale locale= new Locale(language);
             Locale.setDefault(locale);

             Configuration config= new Configuration();
             config.locale=locale;
             context.getResources().updateConfiguration(config,context.getResources().getDisplayMetrics()); 

             dissmissDialog();
        }
    });

我认为使用上面的代码,在用户选择语言后,对话框被解除,应用程序应该根据所选的语言环境加载字符串(例如values-fr / strings.xml)。但是我的应用字符串在对话框解除后没有改变。

我想我的Java代码应该告诉应用重新加载配置,并进行刷新,但我不知道如何在Android中执行此操作。

通常,如何在应用程序级别更改语言环境,以便在用户选择语言后,应用程序可以刷新并显示最新选择的语言环境字符串?

0 个答案:

没有答案