首页 > 解决方案 > 将数据从高到低排序并应用到RecyclerView

问题描述

我有一个如下的数据库结构(FirebaseRealTimeDatabase):

数据结构

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

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());
                  }
            }

我正在接收数据,但我的挑战是对其进行排序。我怎样才能达到预期的效果?

标签: javaandroid

解决方案


你需要做DatabaseReference.orderByValue()

签出此链接

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


推荐阅读