मेरे लिए यह स्पष्ट नहीं है कि यदि आपके पास कई लोडर हैं तो सही कर्सर कैसे प्राप्त करें। कहते हैं कि आप दो अलग-अलग लोडर को परिभाषित करते हैं:
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
एस का उपयोग कर सकते हैं । कृपया इस stackoverflow.com/a/20839825/2818583