如何将Android中的新语言环境应用于当前屏幕

时间:2014-02-19 19:20:09

标签: android localization locale

我已经在我的应用程序中实现了选择GUI语言的选项,但是当选择新语言时我无法刷新屏幕。
选择是通过ListPreference进行的,因此存在两个问题: 1.刷新选择语言的Preference页面。 2.应用启动时,我在Locale的{​​{1}}上设置了onCreate(),但MainActivity布局永远不会使用新选择的区域设置进行更新。 (所有其他屏幕都会更新,因此设置的代码很好。)

以下是设置新语言环境的代码:

MainActivity

谢谢

2 个答案:

答案 0 :(得分:0)

尝试在选择新的区域设置

后刷新MainActivity

使用它来重新加载主要活动或任何活动

public void refrehs_me()
{
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}

编辑:正如我从上面的解释中得到的那样,您可以保存在共享首选项中选择的新语言环境。

在名为(locale_changed)的共享首选项中创建一个新的布尔键 - 当用户选择新的语言环境时,将此键设置为(TURE),并在为此键设置新的语言环境检查后设置onCreate if if(TRUE)设置它到(FALSE)并重新加载活动。

在第二步它不会循环,因为密钥保持(FALSE),直到用户再次更改区域设置首选项。

答案 1 :(得分:0)

答案是在设置屏幕内容之前将呼叫定位到setLocale

setLocale();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);