2011-12-15 10 views
3

私は、ユーザーがenum 'Language'クラスに基づいて言語翻訳を選択できるスピナーリストを作成しようとしています。 「Language.values()」は作品の追加Android:enum.values()ではなく、スピナーにenumラベルを追加する方法

、 が、スピナーは、「AF」ではない「アフリカーンス語」 私は「AF」の値を取得したい「アフリカーンス語」スピナーに示す名前とonItemSelectedをしたいを示しています。

これは可能ですか?

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

ここに列挙型クラスを保持して参照してください、 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) 
    { 
    } 
}); 

答えて

4

代わりのtoString()をオーバーライドを別の関数のように変更します。

public String shortCode() { 
    return language; 
} 

この方法でtoString()Spinner表示するためAFRIKAANSを返します。 、にshortCode()と電話することができます210はafになります。

+1

クールになって:) Log.i(Language.fromString(parent.getItemAtPosition(pos).toString())。shortCode()); – Voidcode

+0

ありがとうございました! – Voidcode

+0

優秀!あなたは答えを受け入れることができますか?ありがとう! – chiuki

関連する問題