আমার কাছে এটি পরিষ্কার নয় যে আপনার যদি একাধিক লোডার থাকে তবে কীভাবে সঠিক কার্সার পাবেন। আপনাকে দুটি পৃথক লোডার সংজ্ঞায়িত করতে বলুন:
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;
}
এ পর্যন্ত সব ঠিকই. তবে কীভাবে সঠিকভাবে কার্সারটি অললডফিনিশড () এ পাবেন কারণ আপনি সঠিক কার্সরডাপ্টারের জন্য সঠিক কার্সার সনাক্ত করতে কোনও আইডি পান না।
@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