覆盖.getDropDownView方法时,我遇到了一种奇怪的行为ArrayAdapter
。我需要重写此方法,以便从我的自定义对象中显示正确的字符串值。这就是我的阵列适配器的样子:
ArrayAdapter<NoteType> adapter = new ArrayAdapter<NoteType>(this, android.R.layout.simple_spinner_item, lstNoteTypes){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView lbl = (TextView) super.getView(position, convertView, parent);
lbl.setText(getItem(position).getName());
return lbl;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
TextView lbl = (TextView) super.getView(position, convertView, parent);
lbl.setText(getItem(position).getName());
return lbl;
}
};
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
因此,当我覆盖时getDropDownView
,我的 Spinner 如下所示 - 项目高度非常小,这不是我想要的:
但是当我评论(或不覆盖)该getDropDownView
方法时,默认样式看起来很好,但是我无法将所需的文本值注入下拉项。
注意两个图像中项目的高度只是因为覆盖getDropDownView
。
有什么建议么?或者我的代码中缺少什么?