我遇到了一个问题,我已经解决了adapter.addAll()
方法。但我的困惑仍然存在:
在adapter.addAll()
我可以传递数据类型与object
对象不同的List
的{{1}},如下所示:
adapter
但如果我使用adapter.addAll(messageList);
方法做同样的事情,我就会开始收到错误adapter.insert()
,如下所示:
Wrong 1st argument type. required.......
我知道我面临的问题可以通过两种方式解决:
首先:从列表中添加一个项目,然后将adapter.insert(messageList, 0);
称为Daniel Zolnai,如下所示:
adapter.notifyDataSetChanged()
第二:将新商品添加到列表中,然后像这样调用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
的{{1}}?
答案 0 :(得分:2)
没有API,但这并不意味着无法完成。 您只需逐个插入对象:
int offset = 0;
for (Message message : messageList) {
adapter.insert(message, offset++);
}
这会将您的列表插入ArrayAdapter
。
不要忘记之后致电notifyDataSetChanged()
。
答案 1 :(得分:0)
在自定义适配器中创建自己的方法,将列表作为参数传递,并将此列表分配给适配器中的列表。 然后通知适配器。简单!!!