我创建了一个自定义 CursorAdapter 与我的列表视图一起使用,并实现了 LoaderManager.LoaderCallbacks 函数来加载数据。
我的问题:在我的活动的 onCreate() 方法中,我想创建我的 CursorAdapter 的一个实例并将其设置为我的列表视图的适配器。但是,由于 LoaderManger 还没有运行我的查询并返回了一个游标,所以我没有游标可以传递给我的适配器的构造函数。如果我传入 null 我会得到一个空指针异常。
使用 simpleCursorAdapter,如果尚未初始化,您可以传递一个空游标。但是我扩展了 CursorAdapter 并且它的行为方式不同。
我的问题:有没有办法将空光标传递给我的适配器?当我的构造函数调用我的适配器的 super(context, cursor) 方法时,我得到了异常。我没有在构造函数中做任何其他事情。
如果我延迟创建我的适配器(并因此将其设置为列表视图的适配器),直到从 LoaderManger 调用 onLoadFinished(),一切正常,但我认为这不是最好的方法。
我还看到了这个链接:
http://rajeevranganathan.blogspot.com/2012/07/creating-custom-cursor-adapter-and.html
他每次都重新创建整个 CursorAdapter,本质上是换掉列表视图的适配器,而不仅仅是它的光标——这似乎相当低效:您不必重新创建适配器,只需换掉光标即可。
任何帮助将不胜感激。我是否只需要扩展 SimpleCursorAdapter 并忽略所有我不需要的附加参数?
谢谢!