所以,我有一个自定义适配器扩展ArrayAdapter,我想从适配器中获取整个列表,是否可以这样做?
我知道在ArrayAdapter构造函数中,您传入对象列表并将其存储为mObjects,但该列表是私有的。我想到只是在构造函数中的自定义适配器中创建自己的列表,但它不能被adapter.add(...)方法更改。有没有办法访问最新的列表?或者有什么方法可以更新我在自定义适配器构造函数中初始化的对象列表?
帮助!
答案 0 :(得分:4)
我不确定这是否有效,所以本来会以评论的形式添加它作为建议,但它太冗长了。你可以试试这样的东西
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;
}
似乎如果你有适配器并且它的方法设置正确应该工作。再次,不确定它是否确实存在,并且可能有更好的方法。只是以为我会快速投入2美分。如果它不起作用,请告诉我,我会删除答案以避免其他用户混淆。
答案 1 :(得分:1)
您可以在自定义适配器类中为List创建get方法,并且仍然可以封装列表数据。使用适配器的引用对象,只要您使用对象引用到您使用的适配器,就可以在活动的任何位置调用get方法。