android - 如何在微调器中显示与下拉列表中不同的内容?

标签 android user-interface spinner

我有一个 Android Spinner 小部件,如果第一个项目被选中,我想在其中显示一个稍微不同的字符串,如果它显示在下拉列表中。例如,单击

[Select a dessert...  v]

弹出:

o No dessert
  Cake
  Pie
  Ice cream

如果例如选择“蛋糕”,旋转器表现正常:

[Cake                 v]

但如果选择“无甜点”,Select a dessert...应该用作 Spinner 提示,就像没有选择任何内容时一样。

最简单的方法是什么?

最佳答案

假设您使用与下面类似的方法,simple_spinner_dropdown_item 默认为适配器中对象的 toString() 值。考虑到这一点,重写某些自定义 ListItem 类的 toString() 方法,以在项目显示为下拉项目时返回您希望微调器显示的任何值。同时覆盖适配器中选定项目的 getView。

ArrayAdapter<ListItem> adapter = new ArrayAdapter<ListItem>(this, android.R.layout.simple_spinner_item, items){
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View v = vi.inflate(android.R.layout.simple_spinner_item, null);
        final TextView t = (TextView)v.findViewById(android.R.id.text1);
        t.setText("Something else");
        return v;
    }
};
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
ddlSpinner.setAdapter(adapter);

关于android - 如何在微调器中显示与下拉列表中不同的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8504307/

相关文章:

Android:更改 fragment 中的layout.xml

android - "Error: Unexpected close tag" Cordova /PhoneGap

Android:如何在软键盘的候选 View 上制作按钮?

Android:NAT 表: “FIX ME! impliment getnetbyaddr() bionic/libc/bionic/stubs.c:444” 是什么意思以及如何修复它

java - 如何在图像(背景)上放置 JButton?

android - 当我单击微调器时如何从微调器中删除箭头?

python - 为什么我的 gi.repository.Gtk 一直使用 GTK 2 模块?

java - Java中非常基本的UI并重新启动代码

android - 如何在自定义对话框中添加微调器并用数组填充它

android - "android.content.res.Resources$NotFoundException: Resource ID #0x0"错误