相关疑难解决方法(0)

在应用程序内更改区域设置

我的用户可以更改应用内的区域设置(他们可能希望将手机设置保留为英文,但可以用法语,荷兰语或任何其他语言阅读我的应用内容...)

为什么这个在1.5/1.6中完全正常但在2.0中不再是???

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case 201:
        Locale locale2 = new Locale("fr"); 
        Locale.setDefault(locale2);
        Configuration config2 = new Configuration();
        config2.locale = locale2;
        getBaseContext().getResources().updateConfiguration(
            config2, getBaseContext().getResources().getDisplayMetrics());
        // loading data ...
        refresh();
        // refresh the tabs and their content
        refresh_Tab ();   
     break;
     case 201: etc...
Run Code Online (Sandbox Code Playgroud)

问题是,每当用户通过以上代码行时,MENU"缩小"越来越多......

这是缩小的菜单:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 100, 1, "REFRESH").setIcon(android.R.drawable.ic_menu_compass);
    SubMenu langMenu = menu.addSubMenu(0, 200, 2, "NL-FR").setIcon(android.R.drawable.ic_menu_rotate);
        langMenu.add(1, 201, 0, "Nederlands");
        langMenu.add(1, 202, 0, "Français");
    menu.add(0, 250, 4, R.string.OptionMenu2).setIcon(android.R.drawable.ic_menu_send);
    menu.add(0, 300, …
Run Code Online (Sandbox Code Playgroud)

android locale menu

195
推荐指数
5
解决办法
15万
查看次数

Android - WebView语言在Android N上突然改变

我有一个多语言的应用程序与主要语言英语和第二语言阿拉伯语.

文档中所述,

  • android:supportsRtl="true"在清单中添加了.
  • 我已经改变了所有XML属性与leftright属性start,并end分别.
  • 我已添加阿拉伯语言字符串strings-ar(和其他资源类似).

以上设置正常.改变后的Localear-AE,阿拉伯文字和资源都正确地显示在我的活动.

但是,每次我导航到Activitya WebView 和/或a时WebViewClient,语言环境,文本和布局方向都会突然恢复为设备默认值.

进一步提示:

  • 在具有Android 7.0的Nexus 6P上发生.一切都在Android 6.0.1及更低版本上正常运行.
  • 只有当我导航到Activity有a WebView和/或a WebViewClient(并且我有几个)时才会发生语言环境的突然转变.它不会发生在任何其他活动上.

Android 7.0具有多语言环境支持,允许用户设置多个默认语言环境.因此,如果我将主要区域设置为Locale.UK:

在此输入图像描述

然后在导航到时WebView,语言环境从更改ar-AEen-GB.

Android 7.0 API更改:

API更改列表中所示,API 24中的以下类中添加了与语言环境相关的新方法:

Locale:

Configuration:

但是,我正在使用API​​ 23构建我的应用程序,并且我没有使用任何这些新方法.

此外......

  • 问题也出现在Nexus …

android locale android-webview android-7.0-nougat android-chrome

57
推荐指数
4
解决办法
1万
查看次数

Android - 强制语言环境重置方向更改

我尝试将应用程序中的区域设置强制为用户指定的区域设置.由于这可能用于演示,我想在应用程序中更改语言/区域设置,而不是随时为整个设备.

我环顾四周,试着用我在这里找到的每一个提示.结果:我可以使用新语言重新启动测试活动,但如果我更改方向,则区域设置将始终重置为设备.

上传了一个简约的项目,以便您可以重现我的问题.请忽略UI的缩小,这并不重要:)

android locale orientation

18
推荐指数
2
解决办法
1万
查看次数

更改设备的语言设置(区域设置)

我知道可以通过res/string在单个应用程序中使用多种语言,具体取决于Locale.这是控制用户语言的案例 (ANDROID)

现在我该如何更改手机中的语言?就像我通过菜单>设置>语言和键盘>选择区域设置>语言一样

是否有一些真正的代码可以访问这些设置?或者我应该为语言设置的快捷方式创建意图.请发一些代码

编辑:使用Locale类developer.android.com/intl/fr/reference/java/util/Locale.html

构造函数至少是Locale(String language)输入是语言.如何检索设备上使用的当前语言?

settings android locale

18
推荐指数
3
解决办法
6万
查看次数