如何在Firebase数据库中按升序对数据进行排序?

时间:2017-03-27 16:55:26

标签: android firebase arraylist collections firebase-realtime-database

我正在使用子命令将数据显示到listView中,数据按降序显示,如何在Android客户端中按顺序设置顺序?

ref.orderByChild("date_creation").limitToFirst(10).addValueEventListener(new ValueEventListener() {

//date_creation is the date when user add Book "dd-MM-yyyy_HH:mm:ss" 
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {


                    for (DataSnapshot dataSnap : dataSnapshot.getChildren()) {

                        Book valueBook = dataSnap.getValue(Book.class);
                        String titreLivreToDisplay = valueBook.getNom_livre();
                        String descLivreToDisplay = valueBook.getDesc_livre();
                        String prixLivreToDisplay = valueBook.getPrix_livre();
                        String timeToDisplay = valueBook.getDate_creation();
                        String filePathToDiplay = valueBook.getChemin_image();
                        String villeToDisplay = valueBook.getVille_livre();
                        String typeAnnToDisplat = valueBook.getType_annonce_selected();

                        item = new Book();

                        item.setNom_livre(titreLivreToDisplay);
                        item.setDesc_livre(descLivreToDisplay);
                        item.setPrix_livre(prixLivreToDisplay);
                        item.setDate_creation(timeToDisplay);
                        item.setChemin_image(filePathToDiplay);
                        item.setVille_livre(villeToDisplay);
                        item.setType_annonce_selected(typeAnnToDisplat);


                        feedItems.add(item);


                    }


                    listAdapter = new FeedListAdapter(AccueilActivity.this, feedItems);

                    listView.setAdapter(listAdapter);
                    listAdapter.notifyDataSetChanged();


                }

我想使用Arraylist集合来对从数据库中获取的数据进行排序。

List<String> list = new ArrayList<String>();
                    for (DataSnapshot dataSnap : dataSnapshot.getChildren()) {

                        Book valueBook = dataSnap.getValue(Book.class);

                        String titreLivreToDisplay = valueBook.getNom_livre();
                        String descLivreToDisplay = valueBook.getDesc_livre();
                        String prixLivreToDisplay = valueBook.getPrix_livre();
                        String timeToDisplay = valueBook.getDate_creation();
                        String filePathToDiplay = valueBook.getChemin_image();
                        String villeToDisplay = valueBook.getVille_livre();
                        String typeAnnToDisplat = valueBook.getType_annonce_selected();

                        list.add(titreLivreToDisplay);
                        list.add( descLivreToDisplay);
                        list.add(prixLivreToDisplay);
                        list.add(timeToDisplay);
                        list.add(filePathToDiplay);
                        list.add( villeToDisplay);
                        list.add(typeAnnToDisplat);
Collections.sort(list);

我不知道如何实现它。我该如何使用这个系列?如何使用list来提供feedItems?

2 个答案:

答案 0 :(得分:2)

根据您的解释,您只想颠倒列表的顺序。 这可以使用比较器轻松完成。

{{1}}

此代码应颠倒您的列表顺序。 希望我有所帮助,否则,提供有关逆序阶段的更多信息。

答案 1 :(得分:0)

我希望按升序对数据进行排序,解决方案只是使用集合来改变我的顺序:

Collections.reverse(feedItems);