我有我的代碼很短的問題。火力地堡和Android:查詢結果進行排序
我用我的Android應用程序recyclerview,並與一些數據我的火力地堡數據庫的填充。
它運作良好,但我注意到,該排序是不正確的:/
我有這樣的代碼:
private void getRankings() {
// hole anzahl an Teilnehmern
mDatabase.child(TEILNEHMERDATA).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// hole Anzahl aller Teilnehmer um das Ranking zu bestimmen
teilnehmerVar = (int) dataSnapshot.getChildrenCount();
mDatabase.child(TEILNEHMERDATA).orderByChild("score").addChildEventListener(new ChildEventListener() {
Teilnehmer teilnehmer = new Teilnehmer();
int i = teilnehmerVar+1;
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
// teamname, Platzierung, Punkte
int punkteStand = (int) Double.parseDouble(String.valueOf(dataSnapshot.child("score").getValue()));
i -= 1;
this.teilnehmer = new Teilnehmer(dataSnapshot.getKey(), ((String) dataSnapshot.child("teamname").getValue()), "Platz " + i, punkteStand + " Punkte");
teilnehmerList.add(0, this.teilnehmer); // add to recyclerview: add(0, teilnehmer) gebe in desc aus von 0 zum n. eintrag
mAdapter.notifyDataSetChanged(); // save
}
在該行:
mDatabase.child(TEILNEHMERDATA).orderByChild("score").addChildEventListener(new ChildEventListener() {
訂購兒童按分數
我得到我的數據與結構是這樣的:
"Teilnehmer" : {
"user_0gPpHXzKqLd2xA" : {
"image" : "",
"score" : "0",
"startnummer" : "1",
"teamname" : "Andy Foo"
},
該行分數包含一個Datarange整數從0到∞
我的佈局是這樣的:
Teamname1 9 Punkte
Platz 1
Teamname2 0 Punkte
Platz 2
Teamname3 1000 Punkte
Platz 3
但它絕對是錯誤的:/
9比10000大 僅由第一號
1..2..3看來我的訂單查詢..
我Recyclerview初始化:
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(mAdapter);
誰能幫助我嗎?
您是否嘗試過使用'orderByValue()'方法? –
這是一個快速回復。是的,嘗試使用orderByValue()。startAt(「0」)。endAt(「99999999」)但不起作用(我沒有得到任何數據) – georf
您是否嘗試過使用這行代碼:'mDatabase.child(TEILNEHMERDATA ).orderByChild(「score」)。addChildEventListener(new ChildEventListener(){'這行代碼:'mDatabase.child(TEILNEHMERDATA).child(userId).orderByChild(「score」)。addChildEventListener(new ChildEventListener(){' ?'userId'是在TEILNEHMERDATA節點下面看到的id –