使用自定义ArrayAdapter作为微调器下拉列表的奇怪行为(单击后复制项目)(Android)
我想对微调器下拉列表使用不同的布局:一个用于普通视图(文本+图像),另一个用于下拉列表(仅文本) 因此,首先,我尝试了以下方法:使用自定义ArrayAdapter作为微调器下拉列表的奇怪行为(单击后复制项目)(Android),android,spinner,android-arrayadapter,dropdown,Android,Spinner,Android Arrayadapter,Dropdown,我想对微调器下拉列表使用不同的布局:一个用于普通视图(文本+图像),另一个用于下拉列表(仅文本) 因此,首先,我尝试了以下方法: Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.item_title, R.id.text, list); adapter.setDropD
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.item_title, R.id.text, list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
然后,我想选择项目4(选择后,下拉列表隐藏):
当我再次单击以选择另一个项目时,它的显示方式如下:
|item 4|
item 1
item 2
item 3
item 1
有人知道解决办法吗?
我希望所有的项目总是出现在下拉列表(没有重复也) 我有一个自定义适配器的问题,在我的情况下,解决方案是替换此适配器:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflator.inflate(R.layout.spinner_item, null);
ViewHolder holder= new ViewHolder();
holder.textTitle = (TextView) convertView.findViewById(R.id.textSpinnerItem);
holder.textTitle.setText(spinnerItems.get(position).getName());
holder.image = (ImageView) convertView.findViewById(R.id.imageSpinnerItem);
}
return convertView;
}
这样:(在某些情况下,当您单击下拉项时,convertView为空)
希望这有帮助我的自定义适配器出现了此问题,在我的情况下,解决方案是替换此适配器:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflator.inflate(R.layout.spinner_item, null);
ViewHolder holder= new ViewHolder();
holder.textTitle = (TextView) convertView.findViewById(R.id.textSpinnerItem);
holder.textTitle.setText(spinnerItems.get(position).getName());
holder.image = (ImageView) convertView.findViewById(R.id.imageSpinnerItem);
}
return convertView;
}
这样:(在某些情况下,当您单击下拉项时,convertView为空)
希望这对您有所帮助您能显示您的适配器类吗?您能显示您的适配器类吗?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflator.inflate(R.layout.spinner_item, null);
ViewHolder holder= new ViewHolder();
holder.textTitle = (TextView) convertView.findViewById(R.id.textSpinnerItem);
holder.textTitle.setText(spinnerItems.get(position).getName());
holder.image = (ImageView) convertView.findViewById(R.id.imageSpinnerItem);
}
return convertView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflator.inflate(R.layout.spinner_item, null);
}
ViewHolder holder= new ViewHolder();
holder.textTitle = (TextView) convertView.findViewById(R.id.textSpinnerItem);
holder.textTitle.setText(spinnerItems.get(position).getName());
holder.image = (ImageView) convertView.findViewById(R.id.imageSpinnerItem);
return convertView;
}