Можно ли создать живую папку без подключения SQL?(Android API) - PullRequest
0 голосов
/ 13 июня 2011

Я читаю http://developer.android.com/resources/articles/live-folders.html и http://developer.android.com/reference/android/provider/LiveFolders.html и https://android.googlesource.com/platform/packages/apps/Contacts/+/donut-release/src/com/android/contacts/ContactsLiveFolders.java

Но я хочу расширить свое приложение (которое представляет собой просмотр списка) до активной папки.Это было бы хорошо подходит.Как я могу использовать свой listadapter в качестве курсора?Это возможно?И кроме этого, как мне установить аналогичный getView, который предоставляет мой Listadapter?такое Baseadapter, который наследует мой listadapter, способен стать курсором, который нужен живой папке?

1 Ответ

0 голосов
/ 13 мая 2012

Да, это возможно. Но вам нужен ContentProvider. Хотя ContentProvider обычно поддерживается некоторой базой данных sql, это не является обязательным требованием. Вы можете получить данные в методе query () ContentProvider из любого источника, при условии, что вы возвращаете их как курсор. Если у вас нет курсора базы данных, вы можете вместо этого обернуть свои данные в MatrixCursor и вернуть MatrixCursor. У меня есть такая реализация метода query (), и он работает, возвращая MatrixCursor.

Распространенным заблуждением является то, что ContentProvider должен быть поддержан запросами из базы данных. Лучше понимать ContentProvider как контракт, который определяет 4 различных (CRUD) метода, которые принимают определенные типы аргументов и возвращают определенные типы.

Кроме того, вы можете иметь разные запросы внутри этих 4 методов и переключать их в зависимости от Uri.

При таком использовании ContentProviders может использовать любой источник данных и выполнять любые операции с этим источником данных, если вы придерживаетесь контракта, указанного классом ContentProvider. Это делает их чрезвычайно сильными.

...