立即更改区域设置

时间:2014-07-24 09:43:33

标签: android locale

我希望我的应用区域设置可以在应用中更改。所以我使用这段代码来做到这一点:

            String languageToLoad  = "fa";
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config, null);

但问题是我会在关闭并手动打开我的应用后看到更改。但我想在代码行之后立即在app中发生。

我尝试将代码转移到onStart()而不是onCreate()方法,并在代码行之后调用onRestart()。但它没有用。

我应该怎么做才能实现这个目标

1 个答案:

答案 0 :(得分:1)

使用这段代码..

public void setLocale(String lang) {
        myLocale = new Locale(lang);
        Resources res = getResources();
        DisplayMetrics dm = res.getDisplayMetrics();
        Configuration conf = res.getConfiguration();
        conf.locale = myLocale;
        res.updateConfiguration(conf, dm);

        Intent refresh = new Intent(this, YourActivity.class);
        startActivity(refresh);
        finish();
    }