对我来说,如果您有多个加载程序,则不清楚如何获得正确的光标。假设您使用以下命令定义了两个不同的Loader:

getLoaderManager().initLoader(0,null,this);
getLoaderManager().initLoader(1,null,this);

然后在 on 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识别正确的Cursor。
@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

还是我错了,这是在一个片段中获取两个不同的cursoradapter结果的错误方法。

最佳答案

Loader类具有一个称为getId()的方法。我希望这会返回您与加载程序关联的ID。

关于android - 具有多个加载程序的LoaderManager : how to get the right cursorloader,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7957418/

10-11 05:19