简体   繁体   English

公共装载机 <Cursor> 用多个CursorLoader调用的onCreateLoader(int id,Bundle args)方法

[英]public Loader<Cursor> onCreateLoader(int id, Bundle args) method calling with several CursorLoader

TASK: I want to display a list of ListView and when you select an item to display the list of dialogue and display it in a list of another element (parent and child elements) 任务:我想显示一个ListView列表,当您选择一个项目以显示对话框列表并将其显示在另一个元素(父元素和子元素)的列表中时

  static class GroupCursorLoader extends CursorLoader {
    DB db;

    public GroupCursorLoader(Context context, DB db) {
        super(context);
        this.db = db;
    }

    @Override
    public Cursor loadInBackground() {
        Cursor cursor = db.getGroupAll();

        return cursor;
    }
}


static class DetailCursorLoader extends CursorLoader{
    DB db;

    public DetailCursorLoader(Context context, DB db) {
        super(context);
        this.db = db;
    }

    @Override
    public Cursor loadInBackground() {
        Cursor cursor;
        cursor = db.getDetailAll();

        return cursor;
    }
}

Now, The question is, how to handle the two Cursor? 现在,问题是,如何处理两个游标? , ie . 即。 written in the following methods 用以下方法写

public Loader onCreateLoader(int id, Bundle args) 公共加载程序onCreateLoader(int id,Bundle args)

public void onLoadFinished(Loader loader, Cursor data) public void onLoadFinished(加载程序加载器,游标数据)

public void onLoaderReset(Loader loader) 公共无效onLoaderReset(Loader loader)

  @Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {

    return return new GroupCursorLoader(this, mDB);
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    scAdapterForGroup.swapCursor(data);
}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
    Log.d(LOG, "onLoadReset");
}
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
      if(id == GROUP_LOADER_ID) {
        return new GroupCursorLoader(this, mDB);       
      } else {
        return new DetailCursorLoader(this, mDB);
      }
    }

   @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
      if(loader instanceof GroupCursorLoader) {
        scAdapterForGroup.swapCursor(data);
      } else {
        scAdapterForDetails.swapCursor(data);
      }
   }

   @Override
   public void onLoaderReset(Loader<Cursor> loader) {
    Log.d(LOG, "onLoadReset");
   }

Answer question at ru.stackoverflow.com 在ru.stackoverflow.com上回答问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM