Я в замешательстве, и мне нужна ваша помощь.Я пытаюсь следовать инструкциям, данным Вирджилом Добянским в его лекции « Разработка клиентских приложений REST для Android », данной в Google IO 2010. К сожалению, я не могу найти способ реализовать правильную связь между контент-провайдером и курсоромАдаптер.
Проблема, с которой я столкнулся, связана с курсором-адаптером, поэтому давайте предположим, что с поставщиком контента все в порядке.Например, давайте попробуем использовать Contacts ContentProvider вместо моего собственного.Я попробовал самое простое решение - любой ContentProvider (как предполагается, Contacts, предоставленный SDK) и SimpleCursorAdapter.Проблема в том, что конструктор SimpleCursorAdapter, содержащий курсор из Контактов, устарел.Документация гласит:
Этот конструктор устарел.
Этот параметр не рекомендуется, так как он приводит к тому, что запросы Cursor выполняются в потоке пользовательского интерфейса приложения и, следовательно, могут вызывать плохую отзывчивость или даже приложение.Не отвечая на ошибки.В качестве альтернативы используйте LoaderManager с CursorLoader.
Я думал: «Хорошо, я не буду его использовать. Вместо этого я попробую LoaderManager с CursorLoader, как мне советуют».Поэтому я пошел на документацию LoaderManager , чтобы найти пример использования и что я нашел?Прекрасный пример использования конструктора SimpleCursorAdapter.Да, то же самое я хотел избежать из-за его устаревания.
// Create an empty adapter we will use to display the loaded data.
mAdapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_2, null,
new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
new int[] { android.R.id.text1, android.R.id.text2 }, 0);
setListAdapter(mAdapter);
Все учебники, которые я смог найти, используют этот устаревший конструктор.Может ли кто-нибудь дать мне хороший ответ, что за лучший способ избежать этого?Или, может быть, я забочусь об этом слишком сильно?Все, что я хотел, это изучить хорошие практики ...