【问题标题】:Understanding BaseAdapters and how to use them了解 BaseAdapter 以及如何使用它们
【发布时间】:2011-01-25 22:04:10
【问题描述】:

我正在尝试设置一个图像 GridView 布局,这涉及从 BaseAdapter 类派生一个新类。我一直在使用 developer.android.com 网站上的教程,但我仍然不太明白它的含义。有人可以向我解释一下 BaseAdapter 到底是什么吗?我不明白 Android 开发者网站提供的定义。

谢谢

【问题讨论】:

    标签: android android-widget android-layout


    【解决方案1】:

    适配器用于将数据绑定到视图。见AdapterView

    AdapterView 是一个子视图由适配器决定。

    从 AdapterView 派生的几个布局视图,如 GridView、ListView 和 Gallery。

    当然,您通常不直接使用AdapterViewAdapter,而是使用或派生自它们的子类之一。 Adapter 的子类可能会添加额外的功能,这些功能会改变您应该如何将数据绑定到视图。

    BaseAdapter 是 Adapter 接口的抽象基类,用于简化适配器的实现。您可以实现自己的,但该框架已经提供了一些非常灵活的适配器。一些流行的适配器是:

    ArrayAdapter,

    • 将数据数组绑定到视图
    • 覆盖getView() 以膨胀、填充和返回数组中给定索引的自定义视图。 getView() 方法包括通过 convertView 参数重用视图的机会。

    CursorAdapter

    • 将数据从游标(如数据库游标)绑定到视图
    • 抽象所以你不要直接使用它,使用子类或派生你自己的
    • 实现抽象方法newView() 来膨胀、填充和返回当前光标位置所需的视图,并实现抽象方法bindView 来填充正在重用的现有视图。..

    SimpleCursorAdapter

    • CursorAdapter的具体实现
    • 它可以采用行布局和光标列到行布局小部件的映射
    • 支持文字和图片,但可以使用setViewTextsetViewImage自定义
    • 可以支持其他类型,并且可以通过钩子自定义绑定:客户端使用setViewValue() 方法实现SimpleCursorAdapter.ViewBinder 接口,以膨胀、填充和返回给定行(当前游标状态)和数据的所需视图“柱子”。此方法可以只定义“特殊”视图和绑定,但仍然遵循 SimpleCursorAdapter 的“普通”绑定标准行为。

    【讨论】:

      【解决方案2】:

      http://developer.android.com/resources/tutorials/views/hello-gridview.html

      GridView 是一种称为 AdapterView 的视图的子类。这些通常包含许多较小的视图,但依赖于适配器为它们提供这些视图。 BaseAdapter 类是您为了覆盖告诉 AdapterView(您的 GridView)要显示什么的方法而扩展的类。最重要的重写方法是 getView() 方法,您可以在该方法中返回视图以显示在网格上的特定位置。

      虽然此设置有点令人困惑和复杂,但 Android 开发人员选择此设置是因为它允许进行所有优化。 AdapterViews 的很多优化都是通过重用 Views 来获得的,而不是在 getView 方法中创建新的 Views。这就是您可以在 getView 方法中看到的 convertView 参数的用途。如果 convertView == null,则该方法需要创建一个新的 View 对象并返回它,这是一个昂贵的操作。如果它不为 null,则适配器可以重用视图,只需更改该教程示例中的图像。

      【讨论】:

        猜你喜欢
        • 2018-12-03
        • 1970-01-01
        • 2012-08-21
        • 1970-01-01
        • 1970-01-01
        • 2019-12-03
        • 1970-01-01
        • 1970-01-01
        • 2012-07-16
        相关资源
        最近更新 更多