为什么我们不能在adapter.insert()方法中传递list的对象?

时间:2016-03-12 08:40:00

标签: android listview adapter android-adapter

我遇到了一个问题,我已经解决了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}}?

2 个答案:

答案 0 :(得分:2)

没有API,但这并不意味着无法完成。 您只需逐个插入对象:

int offset = 0;
for (Message message : messageList) {
    adapter.insert(message, offset++);
}

这会将您的列表插入ArrayAdapter

中现有列表的开头

不要忘记之后致电notifyDataSetChanged()

答案 1 :(得分:0)

在自定义适配器中创建自己的方法,将列表作为参数传递,并将此列表分配给适配器中的列表。 然后通知适配器。简单!!!