当前位置: 首页 > 知识库问答 >
问题:

如何在android中动态更改语言环境和布局?

鄢晔
2023-03-14

我正在开发一个应用程序,使用3种语言的文本。英语、库尔德语和阿拉伯语。我试图在用户更改语言时动态更改布局。我有一个设置屏幕,用户可以在其中更改语言,即我不是在系统设置中更改语言,而是在我的应用程序中更改语言。例如,如果我从库尔德语切换到英语,布局应该从RTL更改为LTR,反之亦然。我尝试使用onConfigUserOnChanged(),但它没有被触发。

更改区域设置:强制活动重新加载资源?找到了问题的答案。

我试过了

>

  • Android:区域设置(系统语言)更改会影响我的应用程序布局。

    Android本地化问题:切换语言环境时,布局中的所有项目都没有正确更新,

    正在尝试动态更改Android语言环境。

    http://www.c-sharpcorner.com/UploadFile/1e5156/how-to-change-locale-of-an-application-dynamically-in-androi/

    没有成功。

    我尝试了onResume(),它会被触发,但当语言更改时,布局不会更改。我使用以下代码更改区域设置。LocaleSingleton是我创建的用来保存配置实例的类。

    @Override
        protected void onResume() {
            getResources().updateConfiguration(LocaleSingleton.getInstance().getConfig(), getResources().getDisplayMetrics());
            AsyncData data = new AsyncData();
            data.execute(String.valueOf(id), Constants.SERVER + "ad_detail.php");
    
            super.onResume();
        }
    

    感谢任何帮助。提前感谢。编辑:我也尝试过在onResume()中重新启动活动,但我只得到一个黑屏。再次感谢。

  • 共有1个答案

    黄宏毅
    2023-03-14

    将其添加到清单中的活动中

    <activity
                android:name=".YourActivity"
                android:configChanges="orientation|keyboardHidden|screenSize" >
            </activity>
    
     类似资料:
    • 我熟悉Java,但只是学习Android编程。我非常喜欢他们的Hello,LinearLayout示例中的颜色栏,所以我一直在尝试将其扩展为一个可以用于我13个月大的孩子的小程序。我让它显示七种颜色的标签和四行。我想做的一件事(因为我会双语),就是能够动态更改区域设置显示语言,而无需退出应用程序,加载新区域设置,然后再次启动应用程序(这很有效,但很乏味)。因此,七个颜色条的标签适合所选语言,但我希

    • 在我的应用程序中,用户应该能够切换区域设置(用于在页面上呈现文本的语言)。大量教程使用FacesContext.get货币实例()。getViewRoot()。setLocale()。例如:http://www.mkyong.com/jsf2/jsf-2-internationalization-example/.但是,这在JSF 2.0中根本不起作用(它在1.2中确实起作用)。这种语言从不切换。

    • 问题内容: 我有一个Action类,我想获取应用程序的语言环境并在此处进行更改,但是我不知道怎么做,也找不到答案。 我可以使用获取当前的语言环境 但是我不知道如何 设置语言环境 。 我想在上述Action类中直接为我的应用更改语言环境。我怎样才能做到这一点? 问题答案: 使用和将其放在HTTP会话中 。

    • 问题内容: 我在Edittext的addTextChangedListener方法中已自定义,一切正常,但是当我更改语言(语言环境)时,我的addTextChangedListener无法正常工作。 我搜索了我的问题并找到了解决方案: 但我不知道如何使用此代码。 问题答案: 您可以尝试先转换为,然后将其投射到

    • 为应用程序创建多语言支持,可以更改应用程序中的语言设置。 至于现在,一切都适用于英语、西班牙语、法语、俄语,但不适用于印地语和汉语。 1) 我以原始语言指定语言名称,但在应用程序中指定,而不是हिन्दी 我能看到“印地语”。 \res \ values hi \数组。xml 2) 选择“印地语”后结束-实际上选择了默认值(英语) \res\values hi\strings。xml .... 在

    • 问题内容: 我希望能够在运行时在Swing应用程序中更改语言环境,并使用来自新语言环境的ResourceBundle的本地化文本来更新屏幕上的所有文本元素。 是否可以在不自定义摆动组件或为处理呈现本地化文本的所有组件创建UIDelegates的情况下完成此操作? 如果没有,那么我可以考虑实施什么好的解决方案? 问题答案: 您有一种方法可用于更改应用程序区域设置(并可能保留新值),而另一种方法可用于