2014-04-04 4 views
0

임 호출은, Collections.sort에서 ArrayList를 정렬하지만 늘 일종의 아무 일도 발생하지 않습니다는클래스 약속의 객체의 배열 목록에 안드로이드 작동하지

이 정렬

ArrayList<appointment> listoffappointments = new ArrayList<appointment>(); 

//then everytime on button click user adds a new appointment after setting the following code is executed 
{ 
Calendar calendar1 = Calendar.getInstance();     
calendar1.set(mYear, mMonth, mDay, temphour, tempmin); 
appointment tempppt = new appointment(c2,tempstring1); 
listoffappointments.add(tempppt); 
Collections.sort(listoffappointments); 
} 

여기 컬렉션을 호출하는 메신저가 얼마나입니다 클래스는 누군가가

import java.util.Calendar; 

public class appointment implements Comparable<appointment> { 

Calendar time; 
String Text; 
public appointment(Calendar tempc, String temptext) { 
    Text = temptext; 
    time = tempc; 
} 

public void settext(String text) 
{ 
    Text = text; 
} 
public String gettext() 
{ 
    return Text; 
} 
public String toString() { 
    return Text; 
} 
public Long gettimeofappt() 
{ 
    return time.getTimeInMillis(); 

} 

@Override 
public int compareTo(appointment o) { 
    return (this.gettimeofappt() < o.gettimeofappt()) ? -1: (this.gettimeofappt() > o.gettimeofappt()) ? 1:0 ; 

} 


} 
+1

당신은, Collections.sort 호출은에서? – Sree

+0

내 다른 클래스에있는 클래스 약속의 개체 목록을 가지고 – theForgottenCoder

+0

귀하의 질문에 그 코드를 포함해야합니다. – nKn

답변

2

당신이 긴 개체를 반환하는 문제의 감사를 찾을처럼은 compareTo을 변경할 수 있습니다

@Override 
public int compareTo(appointment o) { 
    return this.gettimeofappt().compareTo(o.gettimeofappt()); 

} 

Long.compareTo 두 긴 수치 목적 및 Retunrs 비교 :

값 0이 긴 롱 인수와 동일한 경우; 이 Long가 인수 Long보다 작은 수치의 경우는, 보다 작은 값. 이 Long 값이 인수 Long (부호 비교)보다 큰 경우 0보다 큰 값이 입니다.

+0

에 의해 비교하고 싶습니다. @blackbelt가 전혀 변경되지 않습니다. – theForgottenCoder

+0

ArrayList의 내용을 인쇄 할 수 있습니까? 단지 디버그를 위해서 – Blackbelt

+0

어레이 목록의 내용이 정확하게 순서대로 나오기 때문에 처음에는 1 위를, 그 다음에는 1 위 2 위를 – theForgottenCoder