【发布时间】:2017-12-07 21:21:28
【问题描述】:
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
list = new ArrayList<>();
for(DataSnapshot dataSnapshot1 :dataSnapshot.getChildren()){
Model userdetails = dataSnapshot1.getValue(Model.class);
Model listdata = new Model();
String name = userdetails.getName();
String points = userdetails.getPoints();
listdata.setName(name);
listdata.setPoints(points);
list.add(listdata);
}
try {
Collections.sort(list, new Comparator<Model>() {
@Override
public int compare(Model lhs, Model rhs) {
int left = Integer.parseInt(rhs.getPoints());
int right = Integer.parseInt(lhs.getPoints());
return left - right;
}
});
} catch (Exception ignored){}
Adapter recyclerview = new Adapter(list, getActivity());
RecyclerView.LayoutManager layoutmanager = new LinearLayoutManager(getActivity());
recycler.setLayoutManager(layoutmanager);
recycler.setItemAnimator( new DefaultItemAnimator());
recycler.setAdapter(recyclerview);
}
这是我用于从 firebase 检索数据的代码。
下面是数据。
我想按升序但按点对数据进行排序。最大 该点将首先出现。
我已经发布了一个关于它的问题,它成功了,列表已排序,但在某些项目之后它变得未排序。
重要的是列表非常非常大。
我给你举个例子:
排序后,有些项目后来变得未排序。
任何人都可以帮助我吗?谢谢。
【问题讨论】:
标签: android list arraylist firebase-realtime-database android-recyclerview