2016-08-01 12 views
0

I umgesetzt Vergleichbar auf meiner cla Nachricht so, dass ichSortieren Umsetzung Vergleichbare nicht auf Android arbeitet

ein Array von Nachrichten von Publish arrangieren konnte
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.Locale; 


public class News implements Comparable<News>{ 

    private String title; 
    private String description; 
    private String link; 
    private String guid; 
    private String pubDate; 
    private Date date; 
    private String author; 
    private String image; 
    private String category; 
    private String feedIconLink; 



    @Override 
    public int compareTo(News anotherNews) { 

     long compareDateInMilisecconds = ((News) anotherNews).getDateInMilliseconds(); 

     long result = compareDateInMilisecconds - this.getDateInMilliseconds(); 

     int finalResult = (int) result; 

     return finalResult; 
    } 

Der Code kompiliert und es läuft und es thows keinen Fehler, aber es funktioniert nicht wirklich die Reihenfolge der Objekte auf dem Array ändern.

@Override 
     protected void onPostExecute(List<News> input) { 

      for (News aNews : input){ 
       Log.v("Before", aNews.getFeedIconLink()); 
      } 

      Arrays.sort(input.toArray()); 

      for (News aNews : input){ 
       Log.v("After", aNews.getFeedIconLink()); 

      } 

      this.listener.finish(input); 
      } 

I Log.v vor und nach dem Sortieren und es gibt keine Veränderung, wenn auch auf Debug läuft es durch die ganze CompareTo Methode für das gesamte Array.

Gibt es etwas, was ich falsch mache?

Antwort

1

Sie sind:

  • Konvertieren des List<News> in eine News[]

  • die Sortierung News[]

  • die News[]

Stattdessen Art Wegwerfen th e List<News>, using Collections.sort(), anstelle von Arrays.sort().

+0

Das hat perfekt funktioniert, danke! Gelöst –

Verwandte Themen