java - 使 ArrayAdapter<ItemCategory> 接受 LinkedHashSet 而不是 ArrayList

标签 java android arraylist

在我的应用程序中,我使用 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/

相关文章:

java - 为什么公共(public)方法需要记录调用?

Java如何从另一个jar加载一个类到我的jar以及如何使用它

java - 使用 Disruptor 和 Executors 在 Java 中设计 Orchestrator

android - 如何使用 Google Cast SDK 3 添加自定义 SessionProvider

java - 查找集合内的值并比较值字段

java - 与ArrayList相比,为什么我们不将线性搜索成本算作链表插入操作的前提瓶颈?

java - ArrayList 删除索引为 0 和 1 的元素

java - 类的另一个对象的行为不同,JavaSource_Calendar 类

java - 使用JUNIT5运行 cucumber 特征文件时无法过滤它们

android - 在 OpenGL 中同时使用多个渲染器