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

发布于 2024-12-21 11:08:39 字数 1187 浏览 4 评论 0原文

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

添加 'Language.values()' 有效, 但旋转器显示“af”而不是“AFRIKAANS” 我想要在微调器中显示“AFRIKAANS”名称,并且 onItemSelected 我想要获取“af”值。

这可能吗?

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

请参阅此处的 Hold 枚举类: 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) 
    {
    }
});

I am trying to make a spinner list where my users can select a language translations based on enum 'Language' class.

Adding the 'Language.values()' works,
but the spinner shows "af" not "AFRIKAANS"
I want the "AFRIKAANS" name shown in the spinner and onItemSelected I want the get the "af" value.

is this possible?

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

See hold enum class here:
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) 
    {
    }
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

很快妥协 2024-12-28 11:08:39

不要覆盖 toString(),而是将其更改为不同的函数:

public String shortCode() {
  return language;
}

这​​样 toString() 将为 Spinner 返回 AFRIKAANS code>显示,可以在onItemSelected()中调用shortCode()来获取af

Instead of overriding toString(), change it to different function:

public String shortCode() {
  return language;
}

This way toString() will return AFRIKAANS for the Spinner display, and you can call shortCode() in onItemSelected() to get af.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文