如何在Android上检测语言是否为英语(所有变体)?

Pet*_*rdk 14 android locale

我想只为英语用户显示一个按钮,有没有办法检测语言设置?

我知道如何获得当前Locale,但我不知道如果比较它Locale.English是足够的,因为必须有很多英语变体等.

有人这样经历过吗?

kab*_*uko 24

来自Locale文档:

语言代码是ISO 639-1定义的双字母小写ISO语言代码(例如"en").国家/地区代码是ISO 3166-1定义的双字母大写ISO国家/地区代码(例如"US").

这意味着

Locale.getDefault().getLanguage().equals("en")
Run Code Online (Sandbox Code Playgroud)

应该是true.虽然我默认隐藏/显示UI时要小心Locale.许多国家可能有许多用户喜欢其他语言,但英语流利.


Sun*_*hoo 14

Locale.getDefault().getDisplayLanguage() will give your default language of your device
Run Code Online (Sandbox Code Playgroud)

System.out.println("My locale::"+Locale.getDefault().getDisplayLanguage());
Run Code Online (Sandbox Code Playgroud)

结果

我的语言环境::英语


bli*_*ard 5

使用Java 的startsWith() 函数来检查当前语言环境是否是英语变体呢?

Locale.getDefault().getLanguage().startsWith("en")
Run Code Online (Sandbox Code Playgroud)