我有一个 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/