Pour moi, il n'est pas clair comment obtenir le bon curseur si vous avez plusieurs chargeurs. Disons que vous définissez deux chargeurs différents avec:
getLoaderManager().initLoader(0,null,this);
getLoaderManager().initLoader(1,null,this);
puis dans onCreateLoader () vous faites différentes choses en fonction de l'id:
@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;
}
jusqu'ici tout va bien. Mais comment obtenir le bon curseur dans onLoadFinished () car vous n'obtenez aucun identifiant pour identifier le bon curseur pour le bon 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
ou je me trompe et c'est la mauvaise façon d'obtenir des résultats pour deux curseurs différents dans un fragment.
LoaderCallbacks
dans ce cas) avec plus d'un type. Cela fonctionne simplement dans votre cas puisque les deux fois, le résultat est un fichier Cursor
.
Loader
s. Veuillez parcourir ce stackoverflow.com/a/20839825/2818583