Ich verwende Sortable TableView-Bibliothek, um die Tabellenstruktur mit der Sortierfunktion zu erstellen. Die Bibliothek ist wie folgt:Wie dynamisch Spalten in Sortable Tabellenansicht Bibliothek?
https://github.com/ISchwarz23/SortableTableView
ich die JSON-Antwort haben, in dem ich bin immer Kopf- und Körper-Tabelle. Dass ich bevölkerte Kopf- und Körper in der Tabelle:
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));
}
}
Wie Sie sehen, ich Array verwendet habe Header anzuzeigen und Körper ist auch in anderem Code in derselben Art und Weise angezeigt. Außerdem habe ich den Spaltenkomparator in der Schleife selbst verwendet, um die Spalten nach Daten zu sortieren. Dies ist meine Tabelle Komparator Klasse:
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());
}
}
}
Nun das Problem ist, dass ich immer in obigem Code headerIndex behoben wird. Meine Frage, wie man es dynamisch bekommt. Weiß jemand, wie man Header-Klick in dieser Bibliothek erkennt oder wie man headerIndex während der ganzen Zeit, die die Spalten-Spalte klickt, anders bekommen kann? Jede Hilfe wird geschätzt.