Android: использование данных из ArrayList с несколькими столбцами в ListView - PullRequest
0 голосов
/ 19 декабря 2010

В настоящее время я отображаю данные из базы данных SQLite в ListView с несколькими столбцами.Однако я хотел бы использовать вычисляемые столбцы в моих данных, включающие более сложные математические функции, чем те, которые доступны в запросах SQLite.В этой теме был дан следующий совет для такой ситуации:

... если вы помещаете курсор в какой-то класс CursorAdapter, вы можете: (1)преобразуйте Cursor в ArrayList, где Position - это некоторый Java-класс, который вы определяете с помощью своих данных (2), закрываете Cursor, чтобы освободить ОЗУ, которое он занимает (3) сортируйте ArrayList с помощью Arrays.sort () (4), оборачивайте ArrayListв ArrayAdapter и используйте его там, где вы использовали CursorAdapter

Моя проблема в том, что я застрял на шаге (4), потому что ArrayAdapter кажется менее гибким, чем SimpleCursorAdapter.Я использовал SimpleCursorAdapter для определения сопоставления столбцов базы данных с ListView, но, похоже, не существует эквивалентного метода, определенного для ArrayAdapter.

В Интернете я видел ссылки на объект Android с именем ArrayListCursor.Это звучит так, как будто это будет делать то, что я хочу, но это не отображается в текущем справочнике по Android и, похоже, Eclipse не распознает его.

Если ArrayListCursor был заменен, что заменило его?

1 Ответ

1 голос
/ 20 декабря 2010

Я не помню, чтобы когда-либо видел ArrayListCursor.Существует MatrixCursor, который позволяет создать Cursor из строк и ячеек.Вы также можете реализовать AbstractCursor, чтобы делать все, что вы хотите.

Что бы вы ни делали, старайтесь свести к минимуму копирование данных, которое вы делаете, поэтому я бы порекомендовал либо:

  • Созданиеваш собственный AbstractCursor подкласс, который оборачивает вашу базу данных Cursor и смешивает вычисленные значения
  • Просто оставьте свой исходный Cursor в покое и используйте подкласс CursorAdapter для смешивания с вычисленными значениями
...