我有一個列表視圖連接到自定義陣列適配器。這份清單顯示通過改變DataSet中的TCP連接接收到的信息......排序列表視圖與陣列適配器
我可以列表視圖與sort (Comparator<? super T> comparator)
排序,但是當這些數據改變時,列表視圖中沒有更多的分類......
每次dataSet被更改時我都可以使用sort()
,但我認爲這不是最好的選擇...
我該怎麼做?有什麼建議麼?
編輯
我有落實解決的問題提出了...
MyComparatorB.java
public class MyComparatorB implements Comparator<DeviceB> {
private byte orderType;
public MyComparatorB(byte type) {
this.orderType = type;
}
public int compare(DeviceB lhs, DeviceB rhs) {
int res = 0;
if (orderType == SortType.ALPHA) {
res = (lhs.getName()).compareTo(rhs.getName());
}
else if (orderType == SortType.LAST_ACT) {
res = (rhs.getTime().getTime()).compareTo(lhs.getTime().getTime());
}
return res;
}
}
摘錄我customArrayAdapter.java的
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}
//-----------Order the content of the arrayAdapter------------//
public void sort(byte sortType) {
super.sort(new MyComparatorB(sortType));
notifyDataSetChanged();
}
在我MyActivity.java
myDevAdapter.sort(SortType.ALPHA);
當我調試,該方法super.sort(new MyComparatorB(sortType));
被稱爲和MyComparatorB的構造函數被調用了。但方法compare(DeviceB lhs, DeviceB rhs)
永遠不會被調用,我的arrayList不排序... 我做錯了什麼?
爲什麼你不使用ArrayList並對數組和列進行排序! – Behnam 2012-03-28 11:28:22
我想你應該排序你的數組,並調用adapter.notifyDataSetChanged() – 2012-03-28 11:29:31
@amp:什麼是SortType在這裏? – YuDroid 2012-12-11 05:43:40