繁体   English   中英

Android:如何将枚举标签添加到微调器,而不是enum.values()?

[英]Android: How to add enum labels to a spinner, not the enum.values()?

我正在尝试创建一个微调器列表,我的用户可以根据枚举“语言”类选择语言翻译。

添加' Language.values() '有效,但是微调器显示“af”而不是“AFRIKAANS”我想要在微调器和onItemSelected显示“AFRIKAANS”名称我希望得到“af”值。

这可能吗?

public enum Language {
       AUTO_DETECT(""),
       AFRIKAANS("af"),
       ALBANIAN("sq"),
       AMHARIC("am") ....and so no..

请参阅此处的hold enum类: http//code.google.com/p/google-api-translate-java/source/browse/trunk/src/com/google/api/translate/Language.java

spinnerLanguage = (Spinner) findViewById(R.id.translate_spinner_language);
spinnerLanguage.setAdapter(new ArrayAdapter<Language>(this, android.R.layout.simple_spinner_item, Language.values()));
spinnerLanguage.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) 
    {
       Log.i("language", parent.getItemAtPosition(pos).toString());
    }
    public void onNothingSelected(AdapterView<?> parent) 
    {
    }
});

而不是重写toString() ,将其更改为不同的函数:

public String shortCode() {
  return language;
}

这样toString()将返回AFRIKAANSSpinner显示,并且可以调用shortCode()onItemSelected()来获得af

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM