![](/img/trans.png)
[英]Loader<Cursor> onCreateLoader(int, Bundle) Called in Relation to Fragment Lifecycle? ListView not Populating
[英]public Loader<Cursor> onCreateLoader(int id, Bundle args) method calling with several CursorLoader
任务:我想显示一个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;
}
}
现在,问题是,如何处理两个游标? 即。 用以下方法写
公共加载程序onCreateLoader(int id,Bundle args)
public void onLoadFinished(加载程序加载器,游标数据)
公共无效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");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.