2 user-interface android spinner
我有一个Android Spinner小部件,我想在第一个项目中显示一个略有不同的字符串,如果它被选中,如果它显示在下拉列表中.例如,单击
[Select a dessert... v]
Run Code Online (Sandbox Code Playgroud)
弹出:
o No dessert
Cake
Pie
Ice cream
Run Code Online (Sandbox Code Playgroud)
如果选择"Cake",则Spinner表现正常:
[Cake v]
Run Code Online (Sandbox Code Playgroud)
但如果选择"No dessert",Select a dessert...则应将其用作Spinner提示,如同未选择任何内容时一样.
最简单的方法是什么?
假设您使用的方法类似于下面的方法,则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);
Run Code Online (Sandbox Code Playgroud)