我知道我可以使用mySpinner.setSelection(index);
设置微调器当前选定的项目。但是当我想选择另一个项目时,微调器的对话框永远不会显示/突出显示列表中当前选定的项目。
我们有什么方法可以配置微调器,这样我们就可以在对话框中清楚地看到当前选择了哪个项目(无论是使用复选标记还是更改当前所选项目的背景颜色)?
谢谢,
阿兰
答案 0 :(得分:4)
不幸的是,这种行为本身并不是在Spinner组件中实现的,但是,你总是可以创建自己的BaseAdapter,以显示你自己或者在下拉列表中你需要的天气,如下所示:
private class ExampleAdapter extends BaseAdapter{
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//Here is where you actually get the chance to return whatever you want in the spinner component (the single bar with the arrow)
return yourCommonView;
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
//Here is where you get the chance to return whatever you want in the dropdown menu so here you should validate what's the currently selected element and return an image accordingly...
return yourSelectedView;
}
}
这里重要的方法是,getDropDownView是一个让你有机会返回一个带有已检查CheckBox的元素或者你想要使用的任何标记的方法,当然你必须创建自己的布局并验证元素是否正确目前创建的需要标记或不标记...
问候!