2012-02-13 2 views
1

Я хочу, чтобы получить инициализировано CursorLoader экземпляра из LoaderManager так:Не может отлит из погрузчика <Object> к CursorLoader

CursorLoader loader = (CursorLoader) getLoaderManager().getLoader(0); 

Но компилятор дает мне эту ошибку:

Cannot cast from Loader<Object> to CursorLoader 

Я мог бы провести CursorLoader экземпляр, когда он создан, но я бы предпочел оставить его LoaderManager. Итак, любая идея исправить это?

Я использую библиотеку совместимости-v4.

ответ

11

Он должен быть преобразован в два раза:

Loader<Cursor> loader = getLoaderManager().getLoader(0); 
CursorLoader cloader = (CursorLoader) loader; 
+1

Как бы вы сделать наоборот? Я пытаюсь создать загрузчик, который может создать CursorLoader или MyAsyncTaskLoader. Как вы меняете CursorLoader на загрузчик , или есть другой способ. – jimsis

+0

'CursorLoader' является дочерним элементом' Loader ', вы можете напрямую назначить' CursorLoader' 'Loader ' или 'Loader '. – Hank

+0

Не могли бы вы разместить пример формата, попробовать все кастинга, которые я знаю, но это не сработает. В подобном сообщении кто-то предложил вернуть Loader , но, к сожалению, это тоже не сработало. – jimsis

Смежные вопросы