无法更改地区

时间:2018-10-21 14:50:01

标签: java android locale

我遇到以下问题。我想允许用户通过在可用语言列表中进行选择来更改应用程序的语言。对于某些似乎无法更改语言的设备,通常可以对它进行例外处理。我创建了2个单独的配置:it和en。我在系统语言为意大利语的设备上进行了尝试,因此应用程序应检索此信息并提供可用的意大利语,但同样不能在某些设备上使用。

public static void setLocale(Activity activity) {
    Locale myLocale = new Locale(getCurrentLanguage());
    Resources res = activity.getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.locale = myLocale;
    res.updateConfiguration(conf, dm);
}

我在每个Activity中调用setLocale,这是顺序:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        setLocale(MainActivity.this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initActivity();

这样做,它还应该影响Fragments中的语言环境。 当我想在运行时更改语言时,我允许用户选择一个条目,然后计划重新启动以返回MainActivity,这使该应用程序可以重新加载语言更改。

在API级别上遇到的错误:22-23。

有什么主意吗? 预先感谢。

0 个答案:

没有答案