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

时间:2011-12-15 07:38:19

标签: java android enums spinner google-translate

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

添加“Language.values()”有效, 但是微调器显示“af”而不是“AFRIKAANS” 我想在微调器中显示“AFRIKAANS”名称,onItemSelected我希望获得“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) 
    {
    }
});

1 个答案:

答案 0 :(得分:4)

而不是覆盖toString(),而是将其更改为不同的功能:

public String shortCode() {
  return language;
}

这种方式toString()AFRIKAANS显示Spinner shortCode(),您可以在onItemSelected()中致电af获取{{1}}。< / p>