สำหรับฉันมันไม่ชัดเจนว่าจะรับเคอร์เซอร์ที่ถูกต้องได้อย่างไรหากคุณมีรถตักหลายตัว สมมติว่าคุณกำหนด Loader สองแบบด้วย:
getLoaderManager().initLoader(0,null,this);
getLoaderManager().initLoader(1,null,this);
จากนั้นในonCreateLoader ()คุณจะทำสิ่งต่าง ๆ ขึ้นอยู่กับ 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;
}
จนถึงตอนนี้ดีมาก แต่จะทำอย่างไรให้เคอร์เซอร์ถูกต้องในonLoadFinished ()เพราะคุณไม่ได้รับ id ใด ๆ เพื่อระบุเคอร์เซอร์ที่ถูกต้องสำหรับ 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
ในกรณีนี้) กับมากกว่าหนึ่ง ชนิด มันใช้ได้ในกรณีของคุณทั้งสองครั้งผลลัพธ์คือ a Cursor
.
Loader
วินาที โปรดอ่านstackoverflow.com/a/20839825/2818583