我有我的代码很短的问题。火力地堡和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 –