我知道我可以使用mySpinner.setSelection(index);
. 但是当我想选择另一个项目时,微调器的对话框永远不会显示/突出显示列表中当前选定的项目。
有什么方法可以配置微调器,以便我们可以在对话框中清楚地看到当前选择了哪个项目(无论是使用复选标记还是通过更改当前选定项目的背景颜色)?
谢谢,
阿兰
不幸的是,这种行为并没有在 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 的元素或您要使用的任何标记,当然您必须创建自己的布局并验证当前创建的元素是否需要标记与否...
问候!