【问题标题】:SimpleCursorAdapter vs BaseAdapterSimpleCursorAdapter 与 BaseAdapter
【发布时间】:2013-02-28 12:10:41
【问题描述】:

使用 SimpleCursorAdapter 而不是 BaseAdapter 有什么好处? BaseAdapter在哪些场景更适合,在哪些场景下 SimpleCursorAdapter 更合适?

与 SimpleCursorAdapter 的文档中一样,它是这样写的

此构造函数在 API 级别 11 中已弃用。 不鼓励使用此选项,因为它会导致在应用程序的 UI 线程上执行游标查询,从而导致响应速度不佳甚至应用程序无响应错误。作为替代方案,将 LoaderManager 与 CursorLoader 一起使用。

这是否意味着即使在较低的 API 版本上也不应该使用 SimpleCursorAdapter 例如。 API 级别 10(姜饼)?

建议的替代方案 - LoadManager 和 CursorLoader 仅适用于 API 级别 11 及更高级别。那么在 API 级别 10 上工作的解决方案是什么?

【问题讨论】:

  • LoaderManager 和 CursorLoader 是兼容包的一部分,afaik。
  • 不推荐使用simplecursoradapter的一种构造函数,它在主线程上执行请求。加载器将帮助您在后台重新查询。

标签: android adapter


【解决方案1】:

与 BaseAdapter 相比,使用 SimpleCursorAdapter 有什么好处?

SimpleCursorAdapter 封装了将值从Cursor 绑定到ListView's 项目的子视图的逻辑。 BaseAdapter 只是一个抽象类,可以继承它以提供初始化 ListView 的自定义逻辑。

BaseAdapter更适合哪些场景,SimpleCursorAdapter更适合哪些场景?

如果您只需要将值从 Cursor 绑定到 Views - 请使用 SimpleCursorAdapter

这是否意味着即使在较低的 API 版本上也不应该使用 SimpleCursorAdapter,例如。 API 级别 10(姜饼)?

不,这不是真的,您可以将它用于任何版本的 Android。

建议的替代方案 - LoadManager 和 CursorLoader 仅适用于 API 级别 11 及更高级别。那么在 API 级别 10 上工作的解决方案是什么?

LoaderManagerCursorLoader 都在兼容性库中可用,因此您可以在 Android v4 及更高版本上使用它们。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多