在Android中ListView上方添加项目

3
我有一个列表视图,并且我正在使用 list.add(mylist) 和 adapter.notifydatasetchanged(),它会将项目添加到现有列表下方,如何在列表顶部添加项目?
例如:如果我收到新消息,则应在现有列表顶部。
提前致谢。
2个回答

14

使用add(int index, E object)方法,其中index = 0


感谢techiservices。它有效了,我有另一个问题:列表按升序添加数据,换句话说,第一个项目会移到列表底部,而查询接收到的最后一个项目会移到列表顶部。是否有任何方法可以反转顺序,就像在列表中使用DESC降序一样。再次感谢您提供正确答案。+1 - Jason Wood
@Jason Wood。刚刚在编辑时想说,你最好对列表进行排序,可能是按日期/时间排序,当然这取决于你拥有哪些字段,并向用户提供如何排序的选项。 - techi.services
如果您的数据来自数据库,那么ORDER BY DESC是一种很好的简单方法来排序您的数据。感谢您的接受 ;) 祝您有愉快的一天。 - techi.services
1
请查看ListView.setSelection(int position)ListView.smoothScrollToPosition(int position)。后者仅适用于API 8及更高版本。 - techi.services
我不确定 setSelection 是否能实现你想要的功能。我从未尝试过,如果它有效,请告诉我。 - techi.services
显示剩余2条评论

4
实际上,如果您将适配器绑定到ListView上,您也可以使用位置(在此情况下为0)将项目插入适配器中。
list.setAdapter(adapter);

...

adapter.insert(data, 0);

它应该会自动更新,因为您已经将其绑定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接