我想使用此代码获取所有语言:
public List<String> getGeneratePreferedLanguagesList()
{
String[] languageCodes = Locale.getISOLanguages();
List<String> list = new ArrayList<>();
for (String cc : languageCodes)
{
list.add(new Locale("", cc).getDisplayLanguage());
}
Collections.sort(list);
return list;
}
但最终名单是空的。你知道我哪里错了吗?
答案 0 :(得分:4)
你不应该传递一个空字符串作为第一个参数,你应该传递语言。
用现在的语言。
Locale locale = new Locale(cc);
list.add(locale.getDisplayLanguage());
用自己的语言。
Locale locale = new Locale(cc);
list.add(locale.getDisplayLanguage(locale));
修改该行,您应该始终检查javadoc。 https://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#Locale(java.lang.String)
答案 1 :(得分:3)
我假设“最终列表为空”表示该列表包含所有空蜇。如果这就是发生的事情,那是因为你使用了错误的Locale
构造函数。尝试:
list.add(new Locale(cc).getDisplayLanguage());
要以自己的语言显示每种语言,您可以尝试:
Locale locale = new Locale(cc);
list.add(locale.getDisplayLanguage(locale));