0
我試圖使用How to represent 2 cursors as 1 sorted cursor?中提到的AOSP中的SortCursor類。但是,它似乎並沒有對我所給予的遊標進行排序。排序如何工作?AOSP存儲庫的SortCursor如何對其值進行排序
示例代碼:
String[] columnNames = {"name", "value"};
MatrixCursor matrixCursor1 = new MatrixCursor(columnNames);
matrixCursor1.addRow(new String[]{"cursor 1 value A", "9"});
matrixCursor1.addRow(new String[]{"cursor 1 value B", "2"});
matrixCursor1.addRow(new String[]{"cursor 1 value C", "1"});
MatrixCursor matrixCursor2 = new MatrixCursor(columnNames);
matrixCursor2.addRow(new String[]{"cursor 2 value A", "70"});
matrixCursor2.addRow(new String[]{"cursor 2 value B", "8"});
matrixCursor2.addRow(new String[]{"cursor 2 value C", "6"});
Cursor sortCursor = new SortCursor(new Cursor[]{matrixCursor1, matrixCursor2}, columnNames[1]);
while (sortCursor.moveToNext()) {
String name = sortCursor.getString(sortCursor.getColumnIndexOrThrow(columnNames[0]));
String value = sortCursor.getString(sortCursor.getColumnIndexOrThrow(columnNames[1]));;
Log.v("SortCursor", "Name: " + name + ", Value: " + value);
}
sortCursor.close();
輸出,當我運行這段代碼:
V/SortCursor: Name: cursor 2 value A, Value: 70
V/SortCursor: Name: cursor 2 value B, Value: 8
V/SortCursor: Name: cursor 2 value C, Value: 6
V/SortCursor: Name: cursor 1 value A, Value: 9
V/SortCursor: Name: cursor 1 value B, Value: 2
V/SortCursor: Name: cursor 1 value C, Value: 1
正如你所看到的值是完全無序。我期望1,2,6,8,9,70。