2016-04-13 7 views
-1

Ich schreibe ein Programm, das JSON analysieren und zeigt es in einer ListView.
Jetzt möchte ich es sortieren, weiß aber nicht wie und scheitern.
In Programm habe ich eine List<PoolOfflineModal> alist = new ArrayList<>(); so Modal sind dies;Liste sortieren <Modal> mit benutzerdefinierten Fild-Objekt

public class PoolOfflineModal { 
    private int id; 
    private String name; 
    private int price; 
    private int priceWithoutDiscount; 
    private String tel; 
    private int discountPercent; 
    private String address; 
    private String photo; 
} 

und einfache Daten sind hier http://hayat.cloudsite.ir/pools/pools.json

so i List aufsteigend mit dem Preis sortieren wollen, so Listview aktualisieren und ich weiß nicht ...
eine andere Idee ?! oder Lösung ?!

gibt es eine andere Möglichkeit, ListView aus einer Spalte ohne Sortierliste zu sortieren?!?

+1

Mögliches Duplikat von [Sortieren Arraylist mit benutzerdefinierten Objekten von Eigentum] (http://stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects- By-Eigenschaft) –

+0

Überprüfen Sie meine Antwort. – Darshak

Antwort

0

dies ist mein letzter Vergleicher

public class MyComparator implements Comparator<PoolOfflineModal> { 
    @Override 
    public int compare(PoolOfflineModal lo, PoolOfflineModal ro) { 
     int result = 0; 
     if (way == "name") { 
      result = lo.getName().compareTo(ro.getName()); 
     } else if (way == "price") { 
      result = lo.getPrice().compareTo(ro.getPrice()); 
     } else if (way == "percent") { 
      result = lo.getDiscountPercent().compareTo(ro.getDiscountPercent()); 
     } 
     return result; 
    } 
} 
+0

dort Name, Preis, Rabatt ist jetzt String :( – Mahdi

0

Liste Objekt wie folgt aus:

List<PoolOfflineModal> alist = new ArrayList<>(); 

Vergleicher Klasse wie folgt:

public class MyComparator implements Comparator<PoolOfflineModal> { 
    @Override 
    public int compare(PoolOfflineModal o1, PoolOfflineModal o2) { 
     return o1.id.compareTo(o2.id); 
    } 
} 

Zeichen verwendet werden:

Collections.sort(alist, new MyComparator()); 

hoffen, dass es hilfreich für Sie.

+0

Es gibt einen Fehler in compareTO, "Kann compareTo (int) auf dem primitiven Typ int nicht aufrufen" – Mahdi

+0

Ich versuche, Preise auf String ... vielleicht helfen ... – Mahdi

+0

viel <3 zu You Darshak, Thanks, Ich benutzte vorher, aber nicht geantwortet, jetzt änderte ich Art des Preises in "json, modal und andere, wo" es funktioniert und listview sortiert. es gibt einen Weg, um int zu sortieren ?! oder ich muss alle int's auf string setzen?!? – Mahdi

Verwandte Themen