我有一个关于 adapter.addAll()
的问题方法我已经解决了。但我的困惑仍然存在:
在 adapter.addAll()
我可以通过object
List
的其数据类型与 adapter
不同对象,如下所示:
adapter.addAll(messageList);
但是如果我通过使用 adapter.insert()
做同样的事情方法,我开始收到错误,Wrong 1st argument type. required.......
,像这样:
adapter.insert(messageList, 0);
我知道我面临的问题可以通过两种方式解决:
首先:从列表中添加单个项目,然后调用 adapter.notifyDataSetChanged()
如Daniel Zolnai回答如下:
int offset = 0;
for (Message message : messageList) {
adapter.insert(message, offset++);
}
adapter.notifyDataSetChanged()
第二:将新项目添加到列表中,然后调用 adapter.notifyDataSetChanged()
像这样:
for (int i = messageListLoad.size() - 1; i >= 0; i--) {
messageList.add(0, messageListLoad.get(i));
}
adapter.notifyDataSetChanged()
但是为什么我们不能通过 object
的List
在 adapter.insert()
方法?
最佳答案
没有可用的 API,但这并不意味着它不能完成。 您只需一一插入对象即可:
int offset = 0;
for (Message message : messageList) {
adapter.insert(message, offset++);
}
这会将您的列表插入到 ArrayAdapter
中现有列表的开头。
不要忘记之后调用notifyDataSetChanged()
。
关于android - 为什么我们不能在adapter.insert()方法中传递list对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35955506/