在我的应用程序中,我使用 LinkhedHashSet 而不是 ArrayList 来保存 ItemCategory 对象(具有 name 和 id 属性的 POJO) 现在我想在 Spinned 中加载这个 LinkedHashSet,而不必事先将 LinkedHashsSet 转换为 ArrayList。可能吗?这是我的代码
public static void loadSpinnerData(Context context, ArrayList<ItemCategory> array, Spinner spinner) {
// Creating adapter for spinner
ArrayAdapter<ItemCategory> dataAdapter = new ArrayAdapter<ItemCategory>(context,
R.drawable.simple_spinner_item, array);
// Drop down layout style - list view with radio button
dataAdapter
.setDropDownViewResource(R.drawable.simple_spinner_dropdown_item);
// Attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}
顺便说一句,我重写了 ItemCategory 对象中的 toString() 方法以返回类别名称:
public class ItemCategory {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return this.name;
}
}
最佳答案
不要使用 ArrayAdapter
。相反,从 BaseAdapter 扩展.您将不得不复制 ArrayAdapter
的某些行为,但您不会受到其限制的阻碍。
关于java - 使 ArrayAdapter<ItemCategory> 接受 LinkedHashSet 而不是 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21623898/