私は子供の注文を使ってlistViewにデータを表示し、データは降順で表示されます。Androidクライアント側で昇順に並べ替えるにはどうしたらいいですか?Firebaseデータベースで昇順でデータをソートする方法は?
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);
これを実装する方法はわかりません。このコレクションはどのように使用できますか?どのようにfeedItemsをフィードにリストを使用するには?
私feedItemsはブック 'リスト feedItemsは=新しいArrayListを()のリストであります;'私の他のリストは文字列リストです。リスト list = new ArrayList (); 'リストを使用してfeedItemsをフィードする方法は? –
Amal
@Amal Bookクラスの新しいコンストラクタ 'item = new Book();'をインスタンス化して、 'list'の項目をコンストラクタに追加するだけです。最後に、その項目を 'feedItems' ArrayList' feedItems.add(item); 'に追加してください。 期待どおりでない場合は、問題の詳細をお知らせください。 – iMAD
私はこのエラーがあります: 'java.lang.ClassCastException:com.mydreambook.model.Bookはjava.util.Collectionsでjava.lang.Comparableにキャストできません$ ReverseComparator.compare(Collections.java:192)'コレクション ' .sort(feedItems、compare); ' – Amal