根据排序条件更改适配器

时间:2015-09-29 07:19:44

标签: android sqlite

我正在构建一个需要根据排序条件执行http请求或sql请求的应用程序。

当排序条件为PopularityVote时,我会调用API。当条件为Favorite时,我使用SQLite数据库。

我目前有一个自定义适配器,它扩展BaseAdapter以从http请求中获取数据。我也将此适配器用于sql请求,但我必须手动重新运行sql请求并通知适配器更改。

对于sql请求,我想使用游标适配器,以便轻松使用一些功能,如加载器。

我的问题是:是否可能/这是一个好习惯,有两个适配器并根据排序标准切换它们?

如果不是,我该怎么办?我有一些想法,比如构建自定义AsyncTaskLoader或使用isFavorite条目将http结果保存到数据库中,这样我就可以只使用CursorAdapter了。

1 个答案:

答案 0 :(得分:1)

  

是否可能/这是一个很好的做法,有两个适配器和   根据排序标准切换它们?

为什么要两个适配器?你真正需要的是让你的Activity / Fragment实现CursorLoader接口,并将它与CursorAdapter的子类一起使用。在您的http请求返回新数据后,您将更新数据库并通知特定的Uri。 Android将提供重新查询您的数据库。 onLoadFinish您只需交换光标