如何在 android 中以编程方式获取“语言和输入设置”下列出的所有已安装或支持的语言的列表。
我已经使用了 Resources.getSystem().getAssets().getLocales() 但它只给了我该语言的代码,如 en、en_us 但我需要代码和显示名称。
我也尝试过使用 Locale.getAvailableLocales() 但它给了我重复的项目和太大的列表。
请告诉我这样做的正确方法是什么。
getAvailableLocales()
为您提供所有语言,但由于一个/多个国家可以有相同的语言,所以它是重复的,您可以使用过滤它
public ArrayList<String> getAllLanguages()
{
Locale[] locales = Locale.getAvailableLocales();
ArrayList<String> languages=new ArrayList<String>();
for(Locale temp : locales)
{
if(!languages.Contains(temp.getDisplayLanguage()))
languages.Add(temp.getDisplayLanguage());
}
return languages;
}
好的,这将有助于在输入设置下获取语言
private ArrayList<String> getInputLanguages() {
ArrayList<String> inputlanguages=new ArrayList<String>();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
List<InputMethodInfo> ims = imm.getEnabledInputMethodList();
for (InputMethodInfo method : ims){
List<InputMethodSubtype> submethods = imm.getEnabledInputMethodSubtypeList(method, true);
for (InputMethodSubtype submethod : submethods){
if (submethod.getMode().equals("keyboard")){
String currentLocale = submethod.getLocale();
Locale locale = new Locale(localeString);
String currentLanguage = locale.getDisplayLanguage();
inputlanguages.Add(currentLanguage );
}
}
}
return inputlangauges;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)