【问题标题】:changing application language on button click in android在android中单击按钮时更改应用程序语言
【发布时间】:2013-03-20 13:51:02
【问题描述】:

我的应用程序使用两种语言运行,即英语和西班牙语,为此我维护了两个值文件夹,即 values 和 values-sp。

当我点击整个应用程序更改为所选语言时,我的 SettingsActivity 中有一个按钮,因为我已经编写了附加代码。

我的问题是,当我单击按钮并按下返回按钮时,应用程序会显示黑屏一段时间,然后才会出现。

在简历的每个活动中,我都会再次调用 onCreate 以刷新视图。即使我这样做了,也会出现黑屏。

谁能帮我解决这个问题。

提前致谢。

我的代码是

english.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) 
                {
                       languagePopup.dismiss();
                       Locale locale2 = new Locale("en"); 
                       Locale.setDefault(locale2);
                       Configuration config2 = new Configuration();
                       config2.locale = locale2;
                       getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
                       changLanguae();
                       if(language.equalsIgnoreCase("English"))
                           Constants.isLanguageChanged=false;
                       else
                           Constants.isLanguageChanged = true;

                }
            });
            spanish.setOnClickListener(new OnClickListener() 
            {

                @Override
                public void onClick(View v)
                {
                       languagePopup.dismiss();
                       Locale locale2 = new Locale("es"); 
                       Locale.setDefault(locale2);
                       Configuration config2 = new Configuration();
                       config2.locale = locale2;
                       getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
                       changLanguae();
                       if(language.equalsIgnoreCase("Spanish"))
                           Constants.isLanguageChanged=false;
                       else
                           Constants.isLanguageChanged = true;

                }
            });

【问题讨论】:

标签: android android-layout android-widget android-listview android-linearlayout


【解决方案1】:

创建一个复制视图值设置部分的方法,并在您的 onResume() 上使用此方法。无需在 onResume() 中编写整个 onCreate

【讨论】:

    【解决方案2】:

    为应用更改语言的一种更好的方法是让用户从设备设置中更改语言和输入设置,并让设备和应用通过为该语言从您创建的文件夹中呈现 UI 来适当地处理此更改。一个例子是Android Localization

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多