waq*_*lam 10 android view android-arrayadapter android-spinner
当重写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);
Run Code Online (Sandbox Code Playgroud)
因此,当我覆盖时getDropDownView,我的Spinner看起来如下 - 项目高度非常小,这不是我想要的:

但是当我评论(或不覆盖)该getDropDownView方法时,它看起来没有默认样式,但我不能将所需的文本值注入下拉项.

请注意两个图像中项目的高度仅仅是因为覆盖getDropDownView.
有什么建议?或者我的代码中缺少什么?
如果您自己编写 NoteType,请重写其中的 toString() 。只需将以下内容添加到您的 NoteType 类中:
@Override
public String toString() {
return getName();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4995 次 |
| 最近记录: |