2011-07-06 8 views
0

목록 항목으로 android.R.layout.simple_list_item_multiple_choice가있는 ListView를 사용합니다. 나는 목록을 정렬하고 (그리고 어쩌면 목록을 그룹으로 묶음) 체크 된 항목이 목록 위에 있다는 것을 알고 싶다. Comparator를 살펴 보았지만 목록의 항목 이름으로 목록을 정렬 할 수 있습니다. 어떻게하면 좋은 방법으로 할 수 있습니까?Android ListView는 체크 된 항목으로 정렬되었습니다.

답변

0

비교기는 문자열 만 비교할 수는 없습니다. Comparator를 직접 확장하고 객체를 비교할 수 있습니다. 따라서 Object가 "더 작 으면"-1을 반환하고 "더 큰"경우 1을 반환하고, 0이면 0을 반환합니다. ListItem에 목록의 행을 나타내는 간단한 Object가 있다고 가정합니다. 그런 다음 당신은 다음

Collections.sort(List<ListItem> items, Comparator comparator) 

기능으로 목록을 정렬하고 많은 ListItems와 비교기의 인스턴스를 채울 수

public class ListItemComparator extends Comparator{ 
    public int compare(ListItem1 l1, ListItem2 l2){ 
     if(l1.isChecked && l2.isChecked) return 0; 
     if(l1.isChecked && !l2.isChecked) return 1; 
     else return -1; 
     //or any other comparation you like 
    } 
    public boolean equals(ListItem1 l1, ListItem2 l2){ 
     //return true if compare returns 0 
     return l1.isChecked && l2.isChecked; 
    } 
} 

물품. 그 후 어댑터에 귀하의 콘텐츠가 변경되었음을 알리십시오.

관련 문제