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

设置了locale.setDefault(locale)之后,如何才能取回phone Langage?

麹正业
2023-03-14

我使用这个代码片段允许用户在Appplication中设置他喜欢的区域设置:

 Locale locale = new Locale(newLan);
 Locale.setDefault(locale);
 Configuration config = getBaseContext().getResources().getConfiguration();
 config.locale = locale;
 getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());

共有1个答案

黄流觞
2023-03-14

我刚刚试了一下,我的手机区域设置是美国,吐司是用法语显示的,但在日志中我仍然看到美国,也许如果你不将新的区域设置为默认,它会工作吗?

Locale locale = new Locale("fr");
//Locale.setDefault(locale);
Configuration config = getBaseContext().getResources().getConfiguration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());

Toast.makeText(this, android.R.string.cancel, Toast.LENGTH_LONG).show();
Log.d("LOCALE", Locale.getDefault().getCountry());

我在其他问题和答案中看到过使用locale.setdefault(),现在我想知道,为什么需要手动设置默认的locale?如果这是必要的,难道不应该在updateConfiguration()中完成吗?这个答案也很有趣

 类似资料:
  • 设置 locale 其实就是设置环境变量。在 /etc/environment[38]文件中设置全局环境变量: LANG="zh_CN.UTF-8" 在~/.profile或~/.bashrc中设置用户环境变量: export LANG="zh_CN.UTF-8" 完成后可以使用locale命令检验 生成 locale 如果你设置了一个不可用的 locale,请使用 localedef 生

  • 设置新文档ID后如何取回文档ID? 我有一些尝试,但这里是我的最新: 行给我错误: 错误: 记录handleCreateCard错误: 然后,新卡:“此处未定义” 尝试做: 我得到与docRef.id: 文档也正在创建中,因此不确定为什么它不会返回 我尝试了几种方法来实现这一点,然后还尝试了上面提到的所有方法:Firestore-如何在将文档添加到集合后获取文档id 不知道为什么它不起作用。 有什

  • 本文向大家介绍如何设置才能远程登录Mysql数据库,包括了如何设置才能远程登录Mysql数据库的使用技巧和注意事项,需要的朋友参考一下 可以在一台机器上访问另一台机器的MySQL,但是需要一些设置。 进入MySQL后,输入以下命令: 允许任何主机以tigase为用户名(root用户不能远程登录,只能本地登录),123456为密码访问MySQL。 flush privileges; 让MySQL重新

  • 在 Linux 中,语言选择像导出变量一样简单。这是正确的,通过查看这个变量,程序决定如何和你交流。当然,为了使其工作,程序必须支持区域设置,并将其翻译成可用和安装的语言。让我们通过安装法语区域设置,看看它的工作原理。 现在,你将学习如何安装和选择一个区域设置。 这样做 1: echo $LANG 2: locale 3: man man # press q to exit man 4: sudo

  • 我从Eclipse导出了一个项目,然后我尝试在我的机器上运行它,但我做不到。我读了一些文章,意识到我导出程序的方式不对,(我使用Eclipse作为mi IDE)Eclipse提供了导出项目的选项,其中(Runnable.JAR)选项和(.JAR扩展)都是不同的。我认为这是正确的方式。JAR扩展,但事实并非如此,我尝试了另一个项目(Runnable.JAR),它成功了。但是我从Eclipse的工作区

  • Nietschze夸大了他所说的: 杀不死我们的,只会让我们更强大。 你最大的责任是对你的团队负责。你应该非常了解他们中的每个人。你应该激励你的团队,但不要让他们过劳。你通常应该告诉他们他们被激励的方式。如果他们觉得划算,他们会被很好的激励。每个工程中,或者在每个其他的工程里,试着同时用他们建议的以及你认为对他们好的方式去激励他们。激励他们的方法不是给他们更多工作,而是给他们一个新的技能或在团队里