Firebase Sorting Score from Highest to Lowest ~ Android -


inside mainactivity, have function:

 public void sortingdata() {      mrootref = new firebase("https://fyp-1-43a27.firebaseio.com/user");     dbsortalldata = firebasedatabase.getinstance().getreference();      listview mlvscore = (listview) findviewbyid(r.id.lvscore);      final list<userinformation> listscore = new linkedlist<>();     final arrayadapter<userinformation> adapter             = new arrayadapter<userinformation>             (this, r.layout.scoreboard_row, listscore) {          @nonnull         @override         public view getview(int position, view view, viewgroup parent) {             if (view == null) {                 view = getlayoutinflater().inflate(r.layout.scoreboard_row, parent, false);             }              userinformation item = listscore.get(position);             ((textview) view.findviewbyid(r.id.tvscorename)).settext(item.getname());             ((textview) view.findviewbyid(r.id.tvscorepoint)).settext(item.getscore());             return view;         }     };     mlvscore.setadapter(adapter);      com.firebase.client.query queryref = mrootref.orderbychild("score").startat("score").endat("score").limittofirst(50);     queryref.addchildeventlistener(new com.firebase.client.childeventlistener() {         @override         public void onchildadded(com.firebase.client.datasnapshot datasnapshot, string s) {             userinformation si = datasnapshot.getvalue(userinformation.class);             listscore.add(si);             adapter.notifydatasetchanged();         }          @override         public void onchildchanged(com.firebase.client.datasnapshot datasnapshot, string s) {          }          @override         public void onchildremoved(com.firebase.client.datasnapshot datasnapshot) {          }          @override         public void onchildmoved(com.firebase.client.datasnapshot datasnapshot, string s) {          }          @override         public void oncancelled(firebaseerror firebaseerror) {          }     }); } 

my model class:

public class userinformation implements comparable<userinformation> {      public string name;     public string age;     public string score;      public userinformation() {}      public userinformation(string name, string age, string score) {         this.name = name;         this.age = age;         this.score = score;     }      // ... getters , setters here.  } 

these piece of code works, sorts lowest highest.

my problem how sort highest lowest? suggestions , advises appreciated.

you can reorder data on client side - reverse list.

edit : when want reverse list, can use :

collections.reverse(listscore); adapter.notifydatasetchanged(); 

you can add each element database front of list in reverse order :

public void onchildadded(com.firebase.client.datasnapshot datasnapshot, string s) {         userinformation si = datasnapshot.getvalue(userinformation.class);         listscore.addfirst(si);         adapter.notifydatasetchanged();     } 

and change declaration of listscore :

final linkedlist<userinformation> listscore = new linkedlist<>(); 

Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -