gpt4 book ai didi

android - 在应用程序中强制 "locale"

转载 作者:行者123 更新时间:2023-11-30 04:46:48 24 4
gpt4 key购买 nike

我想旋转手机并保留语言环境。我有文件夹值、值-en 和值-hr。在我的每项 Activity 中

android:configChanges="keyboardHidden|orientation|locale"

在我拥有的每个 activity.java 文件中

private Locale locale = null;

@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (locale != null)
{
newConfig.locale = locale;
Locale.setDefault(locale);
getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
}
}

并在 onCreate 中

    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);               
Configuration config = getBaseContext().getResources().getConfiguration();

String lang = settings.getString("language","en");
if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
{
locale = new Locale(lang);
Locale.setDefault(locale);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}

它一直有效,直到我旋转我的手机 - 应用程序仍在工作,按钮和一切都很好 - 但语言环境变得奇怪 - 有时是我的语言环境(hr)有时是(en)......

我还需要补充什么?

最佳答案

我只是删除了“如果”,现在一切正常。是的,每次“重新强制”语言环境都有点“笨重”,但我找不到其他方法。

我的解决方案有点不同,我只是在 onCreate 和 onConfigChange 上“重新强制”它 - 不是每 100 毫秒左右,在 Desire (2.2) 上它工作完美。

@奥斯汀

是的,这几乎是同一个问题,但我认为除了“100 毫秒强制”之外还有其他解决方案。

@梅拉

用户想要使用他们的母语 (HR),但(当前)手机不支持,所以这是唯一的方法 - 强制使用它 =/

关于android - 在应用程序中强制 "locale",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4696134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com