Android java:如何正确将排序数据发送到listView?
Posted
技术标签:
【中文标题】Android java:如何正确将排序数据发送到listView?【英文标题】:Android java: How correct send sorted data to listView? 【发布时间】:2021-04-04 17:33:13 【问题描述】:我以 Map
Map<Integer, FindedUser> reverseSortedMap = new TreeMap<>(Collections.reverseOrder());
reverseSortedMap.putAll(addedUsersMap);
for (Map.Entry<Integer, FindedUser> entry : reverseSortedMap.entrySet())
FindedUser user = entry.getValue();
System.out.println(entry.getKey()+" "+entry.getValue());
helperMap.put(entry.getKey(), new FindedUser(user.getId(), user.getName(), user.getTimestamp()));
得到正确的数据
1609093171 FindedUsername='ccc', id='11', timestamp='1609093171'
1609092871 FindedUsername='bbb', id='10', timestamp='1609092871'
1609092015 FindedUsername='aaa', id='9', timestamp='1609092015'
但是当我将它发送到 listView 时:
MyAdapterHash addedUsersAdapter = new MyAdapterHash(helperMap);
addedUsersListView.setAdapter(addedUsersAdapter);
addedUsersAdapter.notifyDataSetChanged();
结果排序不正确:
1609092015 FindedUsername='aaa', id='9', timestamp='1609092015'
1609093171 FindedUsername='ccc', id='11', timestamp='1609093171'
1609092871 FindedUsername='bbb', id='10', timestamp='1609092871'
问题出在哪里?
【问题讨论】:
地图是一个无序的集合。你的MyAdapterHash
是如何实现的?
我看不到在哪里可以编辑我的帖子,也不知道 NyAdaptedHash 是否正确实施,但地图类型存在问题。 @Live 和 Let Live 给了我 LinkedHashMap 类型。谢谢
【参考方案1】:
看起来helperMap
是HashMap
类型,它不维护插入顺序。
将helperMap
的类型更改为LinkedHashMap
,这将为您提供可预测的迭代顺序。
【讨论】:
谢谢!这正是我所需要的。以上是关于Android java:如何正确将排序数据发送到listView?的主要内容,如果未能解决你的问题,请参考以下文章
如何将java json对象数据发送到android api请求
在UDP Socket java android上发送和接收数据
如何将 SQL 数据映射到 Java JSON 对象和 JSON 数组?
如何将数据从客户端(android-java 应用程序)发送到解析服务器,对其进行处理,将其保存在 parse-dashboard 中并将结果发送回客户端?