アンドロイドStudioでリストビュー内のデータをソートする方法

ハムザ・ジャイアント:

あなたは私のListViewがFirebaseデータベースとリンクされているリストビューのソートデータに喜ば助けることができ、私はFirebaseに追加された最後のデータがリストビューに最初に表示されることを意味し、時間によってそれらをソートしたいです。私を許しなさい、私は、Android Studioでまだ初心者です

私はFirebaseデータベースからデータを取得するには、このコードを使用しています

ListView listLocation;
DatabaseReference databaseLocation;
List<Location> locationList;






    @Override
public void onStart() {
    super.onStart();

    databaseLocation.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            locationList.clear();
            for (DataSnapshot locationSnapshot : dataSnapshot.getChildren() ){

                Location location = locationSnapshot.getValue(Location.class);

                locationList.add(location);


            }
            LocationList adapter = new LocationList(getActivity(), locationList);


            Collections.reverse((List<LocationList>) adapter);

            listLocation.setAdapter(adapter);








        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}
オスカー・エミリオ・ペレス・マルティネス:

あなたはあなたのコレクションを並べ替えるしたい方法を説明していないとき、それは少し困難になります。しかし、私はこの場合、私はあなたがでソートしようとしていると仮定していますdistance.

だから、コードスニペットは、以下のようになります。

  Collections.sort(adapter, new Comparator() {
        @Override
        public int compare(Object o1, Object o2) {
            Location l1 = (Location) o1;
            Location l2 = (Location) o2;
            return l1.getDistance().compareTo(l2.getDistance());
        }
    });

私たちは作っているコンパレータあなたのオブジェクトを比較することができ、またはそれらが同じクラスのすべてのインスタンスである場合、あなたはそのクラスを実装することができます匹敵しますその後、実際のソートを行うためにCollections.sort()を使用することができます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=300780&siteId=1