答案 0 :(得分:1)
如问题accepted answer中所述,@ GursewakSingh指的是,您需要创建一个自定义适配器,并实现getView()
和getDropdownView()
以返回不同的观点。
对于您的情况,您将希望getView()
返回仅显示国旗图像的视图,而getDropdownView()
返回仅显示国旗和国家名称的视图。
微调器视图将使用getView()
显示微调器的常规视图,并使用getDropdownView()
呈现下拉列表的项目。
答案 1 :(得分:1)
希望使用它可以正常工作
// array of data icons from source
private static Integer[] imageIcons = { R.drawable.a, R.drawable.b,
R.drawable.c };
// call adapter from main class
SimpleImageArrayAdapter adapter = new SimpleImageArrayAdapter(context, imageIcons );
spinner.setAdapter(adapter);
// adapter class
public class SimpleImageArrayAdapter extends ArrayAdapter<Integer> {
private Integer[] images;
SimpleImageArrayAdapter(Context context, Integer[] images) {
super(context, android.R.layout.simple_spinner_item, images);
this.images = images;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
return getImageForPosition(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getImageForPosition(position);
}
private View getImageForPosition(int position) {
ImageView imageView = new ImageView(getContext());
imageView.setBackgroundResource(images[position]);
imageView.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
return imageView;
}
}
}