【问题标题】:Android - Get List of supported LocalesAndroid - 获取支持的语言环境列表
【发布时间】:2013-04-02 08:34:58
【问题描述】:

我必须为所有支持的Android设备locales实现AutoComplete TextView。我尝试了以下方法:

 public class AutoCompleteView extends Activity{

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, Locales);
    AutoCompleteTextView textView = (AutoCompleteTextView)
            findViewById(R.id.locale_list);
    textView.setAdapter(adapter);
}
static Locale[] locales = Locale.getAvailableLocales();
private static final String[] Locales = ;
}

我可以使用Locale[] 获取语言环境。在最后一行代码中,How to parse that to String[] Locales.. 请朋友们帮帮我....

【问题讨论】:

  • 它将 String 作为 Java 对象返回。我需要所有语言环境的字符串数组...
  • 为什么需要最终的 String[]?
  • 你看不懂上面的代码吗??我正在使用 AutoCompleteTextView 来显示语言环境列表...
  • @Aʌɐpɥɐuı 你想要这样的国家名称或国家 [af, af_NA, af_ZA, am, am_ET, ar, ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO, ar_KW.. 或国家显示名称或语言
  • Locale.toString() 将返回一个字符串,所以我认为您可以使用循环来迭代地调用它。但是你在 String[] 上的“最终”让它有点困难。

标签: java android locale


【解决方案1】:

抱歉回复晚了

试试这个

  Locale[] locales = Locale.getAvailableLocales();
            ArrayList<String> localcountries=new ArrayList<String>();
            for(Locale l:locales)
            {
                localcountries.add(l.getDisplayLanguage().toString());
            }
    String[] languages=(String[]) localcountries.toArray(new String[localcountries.size()]);

希望对你有帮助。

【讨论】:

  • 谢谢。它对我有用。还有一个问题是我可以根据选定的语言环境动态更改软键盘吗?例如,我在 AutoComplete TextView 中使用上述代码选择了法语。选择法语后,我可以为下一个 EditText 框动态地将软键盘更改为法语吗???能做到吗???请帮帮我...
  • @Aʌɐpɥɐuı 没有办法 AFAIK,检查此以供参考stackoverflow.com/questions/6545734/…
  • @Aʌɐpɥɐuı 如何更改语言环境以获取特定语言的资源,请查看stackoverflow.com/questions/2900023/…
  • 是的,我已经发现了,但不是手动更改,我们不能动态更改吗??
  • @Aʌɐpɥɐuı 在同一个答案中 CommonsGuy(Mark Murphy) 回答说,这是不可能的。
猜你喜欢
  • 2012-08-30
  • 1970-01-01
  • 2019-03-10
  • 2022-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多