我正在尝试创建一个微调器列表,我的用户可以根据枚举“语言”类选择语言翻译。
添加“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)
{
}
});
答案 0 :(得分:4)
而不是覆盖toString()
,而是将其更改为不同的功能:
public String shortCode() {
return language;
}
这种方式toString()
将AFRIKAANS
显示Spinner
shortCode()
,您可以在onItemSelected()
中致电af
获取{{1}}。< / p>