如何恢复 Android 应用程序的默认区域设置

2024-02-12

我有这个 Android 应用程序,已本地化为多种语言。如果存在适合设备区域设置的字符串,应用程序会自动显示它。到目前为止,一切都很好。

接下来,我想允许应用程序的用户切换到我提供的其中一种语言。我可以通过覆盖默认区域设置来做到这一点。这里也没有问题。

这里的问题是:有没有办法在语言列表中提供“默认”选项,允许用户恢复默认的自动区域设置?考虑以下场景:
1. 设备的区域设置设置为德语。应用程序以德语显示所有内容。
2. 用户希望应用程序为法语,因此他们从应用程序内部更改语言,结果应用程序变成法语。
3. 同一用户将设备的区域设置更改为西班牙语。应用程序仍然是法语。
4. 他们选择“默认”设置。该应用程序更改为西班牙语,并且随着区域设置的更改而不断更改。

如果这不能自动执行,那么有没有办法让我获取设备范围的区域设置,以便在选择“默认”选项时可以将我的应用程序设置为它?


我通过在应用程序首次运行时存储现有设置(在对默认区域设置进行任何更改之前)解决了此问题。在仅在我的应用程序第一次运行时运行的块中,我调用:

m_preferences.edit().putString(
                        MyConstants.PREFERENCE_SYSTEM_LANGUAGE,
                        getResources().getConfiguration().locale.getLanguage()
                        ).commit();

稍后,当我需要检索它时:

languageToLoad = m_preferences.getString(
                        MyConstants.PREFERENCE_SYSTEM_LANGUAGE,
                        MyConstants.LANGUAGE_DEFAULT);

更改语言时,我将其保存在另一个首选项中并处理视图的更新。

Edit: 经过一番摸索,我找到了系统设置。我改用这个,而不是上面的代码。

Resources.getSystem().getConfiguration().locale.getLanguage();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何恢复 Android 应用程序的默认区域设置 的相关文章

  • 找不到参数的方法 dependencyResolutionManagement()

    我正在尝试使用老师给我的一个项目 但它显示了一个错误 Settings file Users admin AndroidStudioProjects HTTPNetworking settings gradle line 1 A probl
  • 如何清除所有WebView存储的信息?

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • Android SIP 来电使用带有广播接收器的服务

    大家好 其实我正在尝试创建一个应用程序 支持基于 SIP 通过互联网进行音频呼叫 这里使用本机 sip 我遇到了来电问题 我已经完成了服务的注册部分 但是在接听电话时我无法接听电话 请帮助我 Service file package exa
  • 尝试将相机切换回前面但出现异常

    尝试将相机切换回前面 但出现异常 找不到 问题请检查并帮助 error 01 27 11 49 00 376 E AndroidRuntime 30767 java lang RuntimeException Unable to start
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591

随机推荐

  • 将 MIME 转换为 RichText

    我想转换多米诺骨牌文档字段Data Type MIME Part into a Data Type Rich Text in backend with SSJS or Java 我尝试过与 doc computeWithForm true
  • 无法解析 RubyMine 中的文件

    我正在尝试将 RubyMine v6 3 3 用于我的 Rails 项目 我添加后bootstrap sass宝石根据其说明 在https github com twbs bootstrap sass https github com tw
  • GWT Maven 插件 -- gwt:run 可以工作,但 gwt:compile 不能。为什么?

    我正在使用 gwt maven plugin 来管理 GWT 项目 我用gwt run目标始终以 开发模式 本地运行进行测试 我现在想将我的项目编译成 war 以部署在 Tomcat 上 当我跑步时gwt compile但是 我收到编译错误
  • 从自定义指令 VueJS 更新模型

    我目前使用 Vue JS 2 0 我想从自定义指令更新一个 Vue 实例的模型 但我正在寻找一种很好的方法来做到这一点 这是因为我试图创建一个实现 JQueryUI Datepicker 代码的自定义指令如下
  • 指向匿名联合体的指针的强制转换在 C11 中有效吗?

    const Boo constBoo Boo nonConstBoo nonConstBoo union const Boo q Boo nq constBoo nq 上述构造在 C11 中有效 还是只有 GCC clang 扩展才能以这种
  • filter_var_array() 多维数组

    有什么想法为什么这行不通吗 POST array edit gt array name gt test die var dump filter var array POST array edit name gt FILTER SANITIZ
  • 有谁发现这个程序有什么问题吗

    在没有得到我喜欢的答案后这个关于 chroot 的问题 https stackoverflow com questions 3737008 how run in a chroot jail not as root and without s
  • 性能方面,按位运算符与普通模数的速度有多快?

    是否在正常流程或条件语句中使用按位运算 例如for if等可以提高整体性能 在可能的情况下使用它们会更好吗 例如 if i 1 vs if i 2 除非您使用的是古老的编译器 否则它已经可以自行处理这种级别的转换 也就是说 现代编译器可以并
  • NetBeans。连接到托管数据库

    我有共享主机上的数据库 是否可以从 NetBeans 连接到该数据库 是的 有条件的话是可以的 允许从外部访问您的数据库 这通常通过将主机设置为 关于数据库配置 要查看是否允许 您需要查看数据库管理面板和 或询问您的托管提供商 因为 不同的
  • 跟踪用户活动的 Gem [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一个好的 gem 来跟踪 记录网站上的用户活动 例如 当他们登录 注销或执行更改网站上某些内容的操
  • ABRecordCopyValue 返回 0 ?

    我想做的是获取所有联系人并依赖 如果联系人有 社会档案财产或没有 在获得所有这些联系人之后社会档案财产我会做简单的过滤来知道是否是脸书 推特 在我发布这个问题之前 我花了一整天的时间试图找到这个问题的解决方案 但它允许返回0 ABAddre
  • 依赖关系保留

    因此 我正在查看我的数据库笔记和材料 试图让自己了解即将到来的采访的一般概念和术语 然而 我陷入了依赖和无损连接分解的困境 我到处搜索并看到很多数学方程 但我正在寻找简单明了的英语答案或例子 我找到了一个来自http www cs kent
  • 如何使用纯 CSS 和 HTML 叠加图像/水印

    有没有一种简单的方法可以通过相对定位将透明 PNG 或任何其他图像 覆盖在带有 CSS 的图像标签上 只需传递一个类 img class watermarked src http placehold it 500x325 jpg alt P
  • C# 如何知道给定路径是否代表根驱动器?

    我如何知道给定目录是否是根驱动器 除了检查其路径是否等于 A B C 等 检查 DirectoryInfo Parent 是否为空 DirectoryInfo d new DirectoryInfo if d Parent null IsR
  • 为 LINQ/Lambda 创建 OrderBy 表达式

    我正在创建一个使用 Lambda LINQ 进行动态 where 和 orderby 的概念验证 以下代码适用于 where 表达式 但我不知道如何创建 order by 表达式 对于这个例子 如果可能的话我想保持简单 我宁愿不编写修改表达
  • 在自定义类中注入 Laravel 5.1“Illuminate\Http\Request”?

    这是我的简单应用 库 Gelocation php class namespace App Libraries use Location use Illuminate Http Request class GeoLocation publi
  • 如何使用 pyautogui 处理图像

    我想知道是否可以这样做pyautogui locateOnScreen 对于完整的文件夹 我的意思是一个包含 20 个不同图像的文件夹 并在屏幕上找到它们 是否可以做pyautogui 否则你会怎么做 到目前为止 这是我的代码 from p
  • 让 git 阻止修改推送的提交

    是否可以让 git 检查远程分支prepare commit msg挂钩并查看当前提交是否是修改 如果是 则中止提交 这样可以确保您无法修改已经推送的提交 这会很方便 没有办法阻止某人做git commit amend在他们自己的机器上 但
  • qtconsole 不将 pandas 数据帧渲染为 html notebook_repr_html 选项

    我最近升级了 pandas 的版本 我现在安装了最新的稳定版本 pd version Out 5 0 10 1 在此升级之前 这就是数据帧在 qtconsole shell 中显示的方式 这不是我的屏幕截图 只是我在网上找到的屏幕截图 最新
  • 如何恢复 Android 应用程序的默认区域设置

    我有这个 Android 应用程序 已本地化为多种语言 如果存在适合设备区域设置的字符串 应用程序会自动显示它 到目前为止 一切都很好 接下来 我想允许应用程序的用户切换到我提供的其中一种语言 我可以通过覆盖默认区域设置来做到这一点 这里也