了解BaseAdapter以及如何使用它们

Eng*_*rof 7 android android-widget android-layout

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

谢谢

Ber*_*t F 19

适配器用于将数据绑定到视图.请参阅AdapterView:

AdapterView是一个视图,其子项由适配器确定.

几个布局视图派生自AdapterView,如GridView,ListView和Gallery.

当然,你一般不使用AdapterViewAdapter直接,而是使用或从他们的一个子类.Adapter的子类可能会添加其他功能,这些功能会更改如何绑定要查看的数据.

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

ArrayAdapter,

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

CursorAdapter,

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

SimpleCursorAdapter,

  • 具体实施 CursorAdapter
  • 它可以采用行布局和光标列到行布局小部件的映射
  • 支持文本和图像,但可以使用setViewText和自定义setViewImage
  • 可以支持其他类型,并可以通过钩子自定义绑定:客户端SimpleCursorAdapter.ViewBinder使用一种setViewValue()方法实现接口,以扩充,填充和返回给定行(当前光标状态)和数据"列"的所需视图.此方法只能定义"特殊"视图和绑定,但仍然遵循SimpleCursorAdapter的"普通"绑定的标准行为.


Jem*_*ems 3

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

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

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