可能重复:
Changing Locale within the app itself
在我的应用程序中,我需要“强制”语言,假设我有英语语言环境作为默认的波兰语和芬兰语,根据that post我已经创建了函数posted also bellow,函数在createActivity()中被调用,但问题是它不起作用……知道为什么吗?有什么建议吗?

private void setLocale(String localeCode){
        Locale locale = new Locale(localeCode);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    }

最佳答案

这是我到目前为止得到的。我知道这个问题已经解决了,但我的解决方案更简单、更紧凑。不需要其他更改,清单中的所有活动都不需要android:configurationchanges属性。

public class SigmaMiddleEastApplication extends PPGApplication {

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        newConfig.locale = Locale.ENGLISH;
        super.onConfigurationChanged(newConfig);

        Locale.setDefault(newConfig.locale);
        getBaseContext().getResources().updateConfiguration(newConfig, getResources().getDisplayMetrics());
    }
}

注意这可能会导致问题:
What could cause an Android activity to relaunch itself infinitely when returning from camera?

07-24 19:20
查看更多