mat*_*teo 10 java android locale
根据Java参考,Locale.getLanguage()应该返回语言的2字母小写ISO代码(例如en),而getDisplayLanguage()获取可读名称的方法(例如English).
那么Android中的以下代码怎么样:
Locale.getDefault().getLanguage()
Run Code Online (Sandbox Code Playgroud)
返回English或Español代替en和es????
我完全不解......
Man*_*ser 15
使用
getResources().getConfiguration().locale.getLanguage()
即使我认为您观察到的行为是值得报告的错误,它也会正常工作.
我已经明白了.之所以发生这种情况,是因为我之前调用了Locale.setDefault()并将其传递给Locale,而Locale又是通过错误地传递整个语言名称而创建的(我从偏好设置中选择了语言而错误地选择了条目的标签而不是的价值).
就是这样,我做了:
String lang= //... here I assigned "English" while I thought
// I was assigning it "en"
Locale locale=new Locale(lang);
Locale.setDefault(locale); // (*)
// and later
Locale.getLocale().getLanguage(); //returns "english"
Run Code Online (Sandbox Code Playgroud)
因此,当我查询默认语言环境时,它实际上是我创建的语言环境,其语言代码错误地设置为"英语".
但是有一些有趣的事情:
| 归档时间: |
|
| 查看次数: |
25363 次 |
| 最近记录: |