将数据从最高到最低排序并应用于RecyclerView

时间:2018-12-14 18:10:29

标签: java android

我有一个类似于以下的数据库结构(FirebaseRealTimeDatabase):

Data structure

我需要过滤数据,以便在回收站视图中从最高播放器到最低播放器显示数据:(如下所示)

Rico Hernandes - 40 Galvin Muro - 15 Another player - 5

这是代码,我用来获取数据:

ArrayList<String> profileNameList = new ArrayList();
ArrayList<String> profileStatusList = new ArrayList();
ArrayList<int> scoreList = new ArrayList();

databaseReference.child("players")
        .addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Iterable<DataSnapshot> children = dataSnapshot.getChildren();

                for (DataSnapshot child : children) {
                    //Get the Names of the each player
                    Profile profile = child.child("profile").getValue(Profile.class);

                    //Get the Scores of the each player
                    Scores scores= child.child("scores").getValue(Scores.class);

                    profileNameList.add(profile.getName());
                    profileStatusList.add(profile.getStatus());
                    scoreList.add(scores.getScore());
                  }
            }

我正在接收数据,但是我面临的挑战是对数据进行排序。如何获得理想的结果?

1 个答案:

答案 0 :(得分:1)

您需要做DatabaseReference.orderByValue()

签出此link

如果您仅拥有一个ArrayList<PlayerObject>()而不是三个单独的列表,也会更简单。