1
我正在使用Sortable TableView庫來創建具有排序功能的表結構。圖書館是如下:如何動態排序可排序tableview庫中的列?
https://github.com/ISchwarz23/SortableTableView
我有在我得到頭和表體JSON響應。在表中,我填充頭和體:
String[] myarray = new String[goalData.getTableheaderList().size()];
for (int i = 0; i < goalData.getTableheaderList().size(); i++) {
myarray[i] = goalData.getTableheaderList().get(i).getName();
if (goalData.getTableheaderList().get(i).isSort()) {
int index = GoalsUtils.getIndex(goalData.getTableBodyList().get(0),
goalData.getTableheaderList().get(i).getKey());
setColumnComparator(i, TableComparator.getBodyComparator(index));
}
}
正如你可以看到我已經使用陣列來顯示標題和正文也顯示在相同的方式不同的代碼。此外,我在循環中使用了Column Comparator來根據數據對列進行排序。這是我的表比較類:
public final class TableComparator {
private static int headerIndex;
private TableComparator() {
//no instance
}
public static Comparator<List<TableBody>> getBodyComparator(int index) {
headerIndex = index;
return new BodyComparator();
}
private static class BodyComparator implements Comparator<List<TableBody>> {
@Override
public int compare(final List<TableBody> body1, final List<TableBody> body2) {
return body1.get(headerIndex).getValue().compareTo(body2.get(headerIndex).getValue());
}
}
}
現在的問題是,我總是得到headerIndex固定在上面的代碼。我的問題是如何動態獲取它。有沒有人知道如何檢測這個庫中的標題點擊,或者我們如何在標題列點擊時獲得不同的headerIndex?任何幫助將不勝感激。