如何在Spinner中显示与下拉菜单中不同的内容?

时间:2011-12-14 12:16:52

标签: android user-interface spinner

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

[Select a dessert...  v]

弹出:

o No dessert
  Cake
  Pie
  Ice cream

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

[Cake                 v]

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

最简单的方法是什么?

2 个答案:

答案 0 :(得分:5)

假设您使用的方法类似于下面的方法,simple_spinner_dropdown_item默认为适配器中对象的toString()值。考虑到这一点,覆盖某个自定义toString()类的ListItem方法,以返回当项目显示为下拉项时您希望微调器显示的任何值。同时覆盖适配器中选择项的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);

答案 1 :(得分:0)

首先,在android:prompt="Select a dessert..."内设置<Spinner>