Für mich ist nicht klar, wie man den richtigen Cursor bekommt, wenn man mehrere Lader hat. Nehmen wir an, Sie definieren zwei verschiedene Loader mit:
getLoaderManager().initLoader(0,null,this);
getLoaderManager().initLoader(1,null,this);
dann machen Sie in onCreateLoader () abhängig von der ID verschiedene Dinge:
@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;
}
So weit, ist es gut. Aber wie man den richtigen Cursor in onLoadFinished () erhält, weil man keine ID erhält, um den richtigen Cursor für den richtigen Cursoradapter zu identifizieren.
@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
oder irre ich mich und dies ist der falsche Weg, um Ergebnisse für zwei verschiedene Cursoradapter in einem Fragment zu erhalten.
LoaderCallbacks
in diesem Fall) mit mehr als einem Art. Es funktioniert nur in Ihrem Fall, da beide Male das Ergebnis a ist Cursor
.
Loader
s verwenden. Bitte gehen Sie durch diese stackoverflow.com/a/20839825/2818583