2011-12-15 7 views
3

내 사용자가 enum 'Language'클래스를 기반으로 언어 변환을 선택할 수있는 스피너 목록을 만들려고합니다. 추가안드로이드 : enum.values ​​()가 아닌 회 전자 레이블을 회 전자에 추가하는 방법?

'Language.values()가'작동 하지만 회가 나는 내가 얻을 "AF"값을 원하는 스피너와 onItemSelected에 표시된 "아프리칸스어"이름을 원하는 "AF"없습니다 "아프리칸스어" 을 보여줍니다.

이 가능합니까? toString()Spinner 표시 AFRIKAANS를 반환합니다

public String shortCode() { 
    return language; 
} 

이 방법 : http://code.google.com/p/google-api-translate-java/source/browse/trunk/src/com/google/api/translate/Language.java

대신 최우선 toString()
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) 
    { 
    } 
}); 

답변

4

가, 다른 기능으로 변경 :

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

여기에 열거 클래스를 개최 참조 ,에 shortCode()으로 전화 할 수 있습니다. 210을 입력하면 af이됩니다.

+1

멋지게 작동합니다 :) Log.i (Language.fromString (parent.getItemAtPosition (pos) .toString()). shortCode()); – Voidcode

+0

치유키 감사합니다 !!! – Voidcode

+0

우수! 그럼 대답을 받아 들일 수 있습니까? 감사! – chiuki

관련 문제