Мені незрозуміло, як отримати потрібний курсор, якщо у вас кілька навантажувачів. Скажімо, ви визначаєте два різних навантажувача за допомогою:
getLoaderManager().initLoader(0,null,this);
getLoaderManager().initLoader(1,null,this);
тоді в onCreateLoader () ви робите різні речі залежно від ідентифікатора:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle arg1) {
if (id==0){
CursorLoader loader = new CursorLoader(getActivity(),
MaterialContentProvider.CONTENT_URI,null,null,null,null);
}else{
CursorLoader loader = new CursorLoader(getActivity(),
CustomerContentProvider.CONTENT_URI,null,null,null,null);
};
return loader;
}
все йде нормально. Але як отримати потрібний курсор у onLoadFinished (), оскільки ви не отримаєте жодного ідентифікатора, щоб ідентифікувати правильний курсор для правого Cursoradapter.
@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) {
mycursoradapter1.swapCursor(cursor);
if(isResumed()){
setListShown(true);
}else {
setListShownNoAnimation(true);
}
}
//and where to get the cursor for mycursoradapter2
або я помиляюся, і це неправильний спосіб отримати результати для двох різних курсорадаптерів в одному фрагменті.
LoaderCallbacks
у цьому випадку) з більш ніж одним тип. Він просто працює у вашому випадку, оскільки обидва рази результат - це Cursor
.
Loader
s. Будь ласка , пройти через цей stackoverflow.com/a/20839825/2818583