Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何按Firebase Childs(数字)按升序对列表排序? ref.addValueEventListener(新的ValueEventListener(){ @凌驾 公共void onDataChange(DataSnapshot DataSnapshot){ 列表=新的ArrayList(); 对于(DataSnapshot dataSnapshot1:DataSnapshot.getChildren()){ Model userdetails=dataSnapshot1.getValue(Model.class); 模型listdata=新模型(); String name=userdetails.getName(); String points=userdetails.getPoints(); listdata.setName(name); listdata.设定点(点); list.add(listdata); } 试一试{ Collections.sort(list,newcomparator(){ @凌驾 公共整数比较(lhs型、rhs型){ int left=Integer.parseInt(rhs.getPoints()); int right=Integer.parseInt(lhs.getPoints()); 返回左-右; } }); }捕获(忽略异常){} Adapter recyclerview=新适配器(列表,getActivity()); RecyclerView.LayoutManager LayoutManager=新的LinearLayoutManager(getActivity()); 回收器。setLayoutManager(layoutmanager); setItemAnimator(新的DefaultItemAnimator()); recycler.setAdapter(recyclerview); }_Android_List_Arraylist_Firebase Realtime Database_Android Recyclerview - Fatal编程技术网

Android 如何按Firebase Childs(数字)按升序对列表排序? ref.addValueEventListener(新的ValueEventListener(){ @凌驾 公共void onDataChange(DataSnapshot DataSnapshot){ 列表=新的ArrayList(); 对于(DataSnapshot dataSnapshot1:DataSnapshot.getChildren()){ Model userdetails=dataSnapshot1.getValue(Model.class); 模型listdata=新模型(); String name=userdetails.getName(); String points=userdetails.getPoints(); listdata.setName(name); listdata.设定点(点); list.add(listdata); } 试一试{ Collections.sort(list,newcomparator(){ @凌驾 公共整数比较(lhs型、rhs型){ int left=Integer.parseInt(rhs.getPoints()); int right=Integer.parseInt(lhs.getPoints()); 返回左-右; } }); }捕获(忽略异常){} Adapter recyclerview=新适配器(列表,getActivity()); RecyclerView.LayoutManager LayoutManager=新的LinearLayoutManager(getActivity()); 回收器。setLayoutManager(layoutmanager); setItemAnimator(新的DefaultItemAnimator()); recycler.setAdapter(recyclerview); }

Android 如何按Firebase Childs(数字)按升序对列表排序? ref.addValueEventListener(新的ValueEventListener(){ @凌驾 公共void onDataChange(DataSnapshot DataSnapshot){ 列表=新的ArrayList(); 对于(DataSnapshot dataSnapshot1:DataSnapshot.getChildren()){ Model userdetails=dataSnapshot1.getValue(Model.class); 模型listdata=新模型(); String name=userdetails.getName(); String points=userdetails.getPoints(); listdata.setName(name); listdata.设定点(点); list.add(listdata); } 试一试{ Collections.sort(list,newcomparator(){ @凌驾 公共整数比较(lhs型、rhs型){ int left=Integer.parseInt(rhs.getPoints()); int right=Integer.parseInt(lhs.getPoints()); 返回左-右; } }); }捕获(忽略异常){} Adapter recyclerview=新适配器(列表,getActivity()); RecyclerView.LayoutManager LayoutManager=新的LinearLayoutManager(getActivity()); 回收器。setLayoutManager(layoutmanager); setItemAnimator(新的DefaultItemAnimator()); recycler.setAdapter(recyclerview); },android,list,arraylist,firebase-realtime-database,android-recyclerview,Android,List,Arraylist,Firebase Realtime Database,Android Recyclerview,这是我用来从firebase检索数据的代码 下面是数据 我想按升序对数据进行排序,但要按点进行排序。最大值 重点将在第一位 我已经发布了一个关于它的问题,它成功了,列表被排序了,但在一些项目之后,它变得不排序 最重要的是名单非常大 我将向您展示一个示例: 排序后,某些项目稍后将变为未排序 有人能帮我吗?谢谢。试试这个 ref.addValueEventListener(new ValueEventListener() { @Override

这是我用来从firebase检索数据的代码

下面是数据

我想按升序对数据进行排序,但要按点进行排序。最大值 重点将在第一位

我已经发布了一个关于它的问题,它成功了,列表被排序了,但在一些项目之后,它变得不排序

最重要的是名单非常大

我将向您展示一个示例:

排序后,某些项目稍后将变为未排序

有人能帮我吗?谢谢。

试试这个

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);

            }
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(lhs型、rhs型){
int left=Integer.parseInt(rhs.getPoints());
int right=Integer.parseInt(lhs.getPoints());
返回左-右;
}
});
替换为此

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;
                }
            });
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(o1型、o2型){
返回整数.compare(o2.getPoints(),o1.getPoints());
}
});
更新:

Collections.sort(list, new Comparator<Model>() {
                @Override
      public int compare(Model o1, Model o2) {
               return Integer.compare(o2.getPoints(), o1.getPoints());
   }
});
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(o1型、o2型){
返回Integer.compare(Integer.parseInt(o2.getPoints()),Integer.parseInt(o1.getPoints());
}
});
请设置异常请参见以下代码:设置断点并检查任何异常是否触发

Collections.sort(list, new Comparator<Model>() {
                    @Override
          public int compare(Model o1, Model o2) {
                   return Integer.compare(Integer.parseInt(o2.getPoints()), Integer.parseInt(o1.getPoints()));
       }
    });
试试看{
Collections.sort(list,newcomparator(){
@凌驾
公共整数比较(o1型、o2型){
返回Integer.compare(Integer.parseInt(o2.getPoints()),Integer.parseInt(o1.getPoints());
}
});
}捕获(忽略异常){
忽略。getStackTrace();
}

我认为您的点变量是字符串。请查看我的更新答案仍然相同。此代码被赋予异常或不检查我的更新答案没有任何更改。
try {
      Collections.sort(list, new Comparator<Model>() {
          @Override
              public int compare(Model o1, Model o2) {
                       return Integer.compare(Integer.parseInt(o2.getPoints()), Integer.parseInt(o1.getPoints()));
           }
        });
   } catch (Exception ignored){
        ignored.getStackTrace();
   }