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

标签 android listview adapter android-adapter

我有一个关于 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()

但是为什么我们不能通过 objectListadapter.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/

相关文章:

android - 创建新项目时没有构建目标

android - Ionic Firebase 是否具有与原生相同的功能?

android - 为什么Listview中的图片设置了两倍?

c# - 如何使用 DateTime 列过滤 DataTable?

android - android中可扩展和普通listView的混合

java - 从适配器中选择 Android

android - Android 代码示例入门 - 权限错误

java - Android CheckedTextView 未正确检查

java - 从 gridview 中删除项目

design-patterns - 桥接模式和适配器模式的区别