2016-01-16 97 views
2

在使用Locale.setDefault(newLocale);支持多种语言的应用程序中,我们正在更改语言,但无法将语言更改为设备默认语言。以编程方式在设置中查找设备默认语言的最佳方式是什么?如何获得系统语言?

+3

调用'Locale.getDefault()',并保存结果。 – CommonsWare

+0

设置新的语言环境后,它会返回我们设置的最后一个语言环境,所以它不是有用的,谢谢 –

+1

:: sigh ::调用'Locale.setDefault()'**之前调用'Locale.getDefault()'**,并保存结果。 – CommonsWare

回答

3

检查:

Resources.getSystem().getConfiguration().locale.getLanguage();

+0

这个解决方案的工作,谢谢:) –

1

一般来说,在一个变量存储用户修改设置由你掌控,而不是Oracle。即用户在更改应用程序的区域设置时不要致电Locale.setDefault,而是在您的控制下更改一个变量。

对于每个取决于地区的方法,都会覆盖参数Locale

这就是你应该在你的控制之下传递locale变量的地方。

这样,您可以随时咨询Locale.getDefault进行系统设置。

+0

感谢您的答案,但它在Android的上下文,所以Locale.setDefault是有用的,我设置新的语言在应用程序 –

0

下面是你在找什么

Locale.getDefault().getLanguage();