Android +使用带有ArrayAdapter的LoaderManager?

wor*_*ked 2 android

我可能会离开这里,但我有一个ArrayAdapter管理ListFragment的静态数据.很简单的东西.但是,我有兴趣利用新的LoaderManager类.我还可以使用我的ArrayAdapter并编写自己的加载器吗?文件似乎表明这是真的:

"...最常见的用途是使用CursorLoader,但应用程序可以自由编写自己的加载器来加载其他类型的数据."

如果是这种情况,我如何使用重写的LoaderManager.LoaderCallbacks接口方法?

@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {return null;}

@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {}

@Override
public void onLoaderReset(Loader<Cursor> arg0) {}
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 8

如果要创建新类型的Loader,则可能需要为数据使用不同的类型而不是Cursor(除非您的新加载器也返回Cursors).

你的回调应该是这样的

@Override
public Loader<MyDataType> onCreateLoader(int id, Bundle args) {
    return new MyCustomLoader(...);
}

@Override
public void onLoadFinished(Loader<MyDataType> loader, MyDataType data) {
    myArrayAdapter.add(data.something()); // etc
}

@Override
public void onLoaderReset(Loader<MyDataType> loader) {
     myArrayAdapter.clear();
}
Run Code Online (Sandbox Code Playgroud)

  • [AsyncTaskLoader](http://developer.android.com/reference/android/content/AsyncTaskLoader.html)文档包含如何实现自定义加载程序的示例. (2认同)