0
我使用ListView和android.R.layout.simple_list_item_multiple_choice作爲列表項。我想排序列表(也許組列表),檢查項目位於列表的頂部。我查看了Comparator,但它只允許我按列表的條目名稱對列表進行排序。 這怎麼可能以好方式完成?Android ListView按檢查項排序
我使用ListView和android.R.layout.simple_list_item_multiple_choice作爲列表項。我想排序列表(也許組列表),檢查項目位於列表的頂部。我查看了Comparator,但它只允許我按列表的條目名稱對列表進行排序。 這怎麼可能以好方式完成?Android ListView按檢查項排序
比較器只能比較字符串是不正確的。你可以自己擴展比較器並比較你的對象。所以如果你的對象是「更小」返回-1,如果它是「更大」返回1,如果相等0. 我假設你有一個簡單的對象表示一行你的列表,讓我們說ListItem。 那麼你就寫
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;
}
}
然後,您可以用
Collections.sort(List<ListItem> items, Comparator comparator)
功能整理你的清單,你listItems中和你比較的一個實例填充。 之後告訴適配器,您更改了他的內容