【问题标题】:Get list of items in custom adapter获取自定义适配器中的项目列表
【发布时间】:2014-06-05 04:59:34
【问题描述】:

所以,我有一个扩展 ArrayAdapter 的自定义适配器,我想从适配器中获取整个列表,是否可以这样做?

我知道在 ArrayAdapter 构造函数中,您传入对象列表并将其存储为 mObjects,但该列表是私有的。我想在构造函数的自定义适配器中创建自己的列表,但它不能被 adapter.add(...) 方法更改。有没有办法访问最新列表?或者有什么方法可以更新我在自定义适配器的构造函数中初始化的对象列表?

救命!

【问题讨论】:

    标签: android


    【解决方案1】:

    我不确定这是否有效,所以我宁愿以评论的形式将其添加为建议,但它太长了。你可以试试这样的

    List<T> items = new ArrayList<T>();
    for(int i = 0; i < adapter.getCount(); i++){
        items.add(adapter.getItem(i));
    }
    

    或者您应该能够在适配器中为其包含的列表创建一个简单的 getter

    public T getList(){
        return mList;
    }
    
    • 请注意,T 是您正在使用的项目类型的通用表示

    看来,如果你有你的适配器并且它的方法设置正确应该可以工作。同样,不确定它是否确实如此,并且可能有更好的方法。只是以为我会很快投入我的 2 美分。如果它不起作用,请告诉我,我将删除答案以避免其他用户混淆。

    【讨论】:

      【解决方案2】:

      您可以在自定义适配器类中为您的 List 创建一个 get 方法,并且仍然可以封装您的列表数据。使用适配器的引用对象,您可以在活动中的任何位置调用该 get 方法,只要您使用了对所用适配器的对象引用。

      【讨论】:

        猜你喜欢
        • 2012-06-18
        • 2012-02-27
        • 2015-11-15
        • 2015-04-27
        • 1970-01-01
        • 2015-07-09
        • 2014-06-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多