Innen MainActivity
, ich habe diese Funktion:Firebase Sortierung vom höchsten zum niedrigsten ~ Android
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-Klasse:
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 and Setters here.
}
Dieses Stück Code arbeitet, sortiert ich vom niedrigsten zum höchsten .
Mein Problem ist, wie sortiere ich es von höchster zu niedrigsten? Vorschläge und Ratschläge werden sehr geschätzt.
Firebase sortiert lexikografisch, AFAIK. Sie können die Daten des ArrayAdapters einfach umkehren –
Warum verwenden Sie https://firebase.com anstelle von https://firebase.google.com? Firebase.com ist veraltet. –
Collections.sort (Partituren, neue Vergleicher() { public int vergleichen (Score o1, Score o2) { return o2.getScores(). Get (0) .compareTo (o1.getScores(). Get (0)); } }); Oben Code ist, was ich im Internet gefunden habe, aber ich weiß nicht wirklich, wie man es passt .. jede Anleitung geschätzt –
Arduino