带有多个加载器的LoaderManager:如何获得正确的指针加载器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

对我来说,如果你有多个装载机,它不清楚如何得到正确的光标。假设你定义了两个不同的加载器:

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;
} 

到目前为止还不错。但是如何在onLoadFined()因为你没有任何标识来标识正确的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

或者我错了,这是错误的方法,以获得结果的两个不同的指针适配器在一个片段。

提问于
用户回答回答于
用户回答回答于

使用getId()装载机方法:

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
    switch (loader.getId()) {
        case 0:
            // do some stuff here
            break;
        case 1:
            // do some other stuff here
            break;
        case 2:
            // do some more stuff here
            break;
        default:
            break;
    }
}    

扫码关注云+社区