如何在Android应用程序中强制语言

Rob*_*ert 11 android locale

可能重复:
更改应用程序本身内的区域设置

在我的应用程序中我需要"强制"语言让我说我有英语语言环境作为默认波兰语和芬兰语,根据我发布的帖子我发布的功能也在下面,函数在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());
    }
Run Code Online (Sandbox Code Playgroud)

Ser*_*nko 12

这是我到目前为止所得到的.我知道这个问题已经解决,但我的解决方案更简单,更紧凑.不需要其他更改,清单中的所有活动都没有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());
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这可能会导致问题: 从相机返回时,什么可能导致Android活动无限重新启动?

  • 只需将"if(newConfig.locale!= targetLocale)"周围的所有内容包装起来即可解决无限重新启动问题. (3认同)

Sun*_*hoo 3

在清单中添加以下内容(对于每个活动):

android:configChanges="locale"
Run Code Online (Sandbox Code Playgroud)