你能帮我对listView中的数据进行排序吗?
listView 与 Firebase 数据库链接,
我想按时间对它们进行排序,这意味着最后添加到 Firebase 的数据首先出现在 ListView 中。
请原谅,我还是 Android Studio 的初学者。
我使用此代码从 Firebase 数据库获取数据
ListView listLocation;
DatabaseReference databaseLocation;
List<Location> locationList;
@Override
public void onStart() {
super.onStart();
databaseLocation.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
locationList.clear();
for (DataSnapshot locationSnapshot : dataSnapshot.getChildren() ){
Location location = locationSnapshot.getValue(Location.class);
locationList.add(location);
}
LocationList adapter = new LocationList(getActivity(), locationList);
Collections.reverse((List<LocationList>) adapter);
listLocation.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
最佳答案
当您不解释您希望如何对集合进行排序时,这会变得有点困难。但在这种情况下,我假设您尝试按距离排序。
所以代码 fragment 如下。
Collections.sort(adapter, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Location l1 = (Location) o1;
Location l2 = (Location) o2;
return l1.getDistance().compareTo(l2.getDistance());
}
});
我们正在制作 Comparator可以比较您的对象,或者如果它们都是同一类的实例,您可以使该类实现 Comparable 。然后您可以使用 Collections.sort() 进行实际排序。
关于java - 如何在Android Studio中对 ListView 中的数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60733991/