Para mim não está claro como obter o cursor correto se você tiver vários carregadores. Digamos que você defina dois carregadores diferentes com:
getLoaderManager().initLoader(0,null,this);
getLoaderManager().initLoader(1,null,this);
então em onCreateLoader () você faz coisas diferentes dependendo do 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;
}
Por enquanto, tudo bem. Mas como colocar o cursor certo em onLoadFinished () porque você não obtém nenhum id para identificar o Cursor certo para o Cursoradapter certo.
@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 estou errado e esta é a maneira errada de obter resultados para dois adaptadores de cursor diferentes em um fragmento.
LoaderCallbacks
neste caso) com mais de um tipo. Isso simplesmente funciona no seu caso, pois nas duas vezes o resultado é a Cursor
.
Loader
s. Acesse stackoverflow.com/a/20839825/2818583