【问题标题】:Language reverts back to English after changing orientation更改方向后语言恢复为英语
【发布时间】:2016-07-22 16:18:26
【问题描述】:

当我在纵向模式下选择一种语言时,它可以正常工作。当我将方向更改为横向并返回纵向模式时,默认语言会被选中。

我在 android 清单文件中尝试了这段代码

android:configChanges="keyboard|Hidden|screenSize|orientation

那么任何人都可以建议我如何实现上述要求吗? 提前感谢

【问题讨论】:

  • 您在哪里更改语言?关于系统偏好?您应该在 configChanges 上添加“语言环境”
  • 您需要提供一些代码,但看起来您正在通过代码以某种方式设置应用语言,并且方向更改没有考虑到这一点
  • 配置配置 = res.getConfiguration(); conf.locale = 语言环境; res.updateConfiguration(conf, dm);
  • 在应用程序本身的开头它要求选择一种语言,所以我使用了 updateConfiguration()。受尊重的字符串在 strings.xml 中(也适用于其他语言)

标签: android


【解决方案1】:
@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Set your locale here...
    }

在你的活动类中添加上面的代码,当旋转改变时,上面的方法被调用并且语言环境不记得你在纵向语言环境中设置的语言环境。

【讨论】:

    【解决方案2】:

    正确的方法是从您的应用程序对象中处理它。

    public class MyApp extends Application {
    
        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            // Set your locale here...
        }
    }
    

    【讨论】:

    • 如果我们从活动中更改语言环境会更好,因为应用程序类修复了这个语言,但是在我们的设置中,我们提供了用户更改语言的选项,这就是为什么它更好地在活动类中处理
    • @Yogesh Rathi 加油,你的解决方案我们必须在所有活动中处理 onConfigurationChanged 方法,对吧?
    • 不,亲爱的,您可以声明自己的活动并扩展自定义活动类中的所有活动
    • 前。 CutomActivity 扩展了 Activity 并且您的应用有 100 个 Activity,将您的所有 Activity 扩展到 CutomActivity 类。
    猜你喜欢
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多