Para mí, no está claro cómo obtener el cursor correcto si tiene varios cargadores. Digamos que define dos cargadores diferentes con:
getLoaderManager().initLoader(0,null,this);
getLoaderManager().initLoader(1,null,this);
luego en onCreateLoader () haces diferentes cosas dependiendo de la identificación:
@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;
}
Hasta aquí todo bien. Pero cómo obtener el cursor correcto en onLoadFinished () porque no obtiene ninguna identificación para identificar el Cursor correcto para el Cursoradapter correcto.
@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
o me equivoco y esta es la forma incorrecta de obtener resultados para dos cursorapteros diferentes en un fragmento.
LoaderCallbacks
en este caso) con más de una tipo. Simplemente funciona en su caso, ya que en ambas ocasiones, el resultado es un Cursor
.
Loader
s. Consulte este stackoverflow.com/a/20839825/2818583