133

我想知道在Android 的上下文中何时地以及如何使用适配器。

Android 开发者文档中的信息对我来说是不够的,我想得到更详细的分析。

4

10 回答 10

49

Android 中的 Well 适配器基本上是 UI 组件和将数据填充到 UI 组件中的数据源之间的桥梁

例如,使用列表适配器从数据源数组填充列表(UI 组件)。

于 2010-09-09T13:54:44.663 回答
36

假设您想在您的 Android 应用程序中显示一个列表。为此,您将使用ListViewAndroid 提供的。 ListViews 本身实际上并不包含任何数据。它只是一个没有数据的 UI 元素。您可以ListView使用 Android 适配器填充您的 s。

Adapter是一个接口,其实现提供数据并控制该数据的显示。 ListViews 自己的适配器可以完全控制ListView的显示。因此适配器控制列表中显示的内容以及如何显示它。

Adapter接口包括将数据传送到ListView. 您可以通过实现从头开始创建自己的适配器BaseAdapter

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

让我们定义一个适配器:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • 第一个参数:上下文
  • 第二个参数:行的布局
  • 第三个参数:TextView写入数据的ID
  • 第四个参数:数据数组
于 2015-08-09T09:06:02.480 回答
29

我想分享我的理解。

它是数据源和布局(很可能是 ListView)之间的接口。

类比

让我们以移动充电器或 USB 数据线为例。电线可以理解为适配器,而数据源和布局可以分别理解为插座(插入点)和USB端口(充电点)。

在移动充电的情况下,电源可能不同,例如从移动电源、插座或笔记本电脑充电。Android 中使用的适配器也是如此。数据源可能会根据应用要求而改变。

简而言之,Android 中的适配器携带来自源(例如ArrayList<>)的数据并将其传递到布局(.xml 文件)。

于 2016-10-25T14:20:04.933 回答
8

Android 中的适配器是适配器视图(例如ListView)和该视图的底层数据之间的桥梁。想象一下没有适配器的世界会怎样!

例子

  • 在垂直滚动列表中显示项目的视图。这些项目来自ListAdapter与此视图关联的。

  • ListAdapter定义列表中各个行的布局,并通过ListViewsetAdapter()方法向 ListView.

  • Android提供了几种标准适配器;最重要的是 ArrayAdapterCursorAdapter

  • ArrayAdapter可以处理基于数组或列表的数据。

  • SimpleCursorAdapter可以处理数据库相关数据。
于 2014-07-30T07:04:08.410 回答
4

适配器基本上用于传递内容。您可能在每个应用程序中都有一个适配器是 CursorAdapter,它使您能够从数据库查询中传递由游标给出的内容。ListView 几乎总是有某种适配器。

于 2010-09-09T10:13:47.807 回答
4

适配器充当AdapterView视图和底层数据之间的桥梁。适配器提供对数据项的访问,并负责为数据集中的每个项创建一个视图。

View适配器是一种连接某种数据源的智能方式。通常,您的视图将是 aListView并且数据将以 aCursor或的形式出现Array。所以适配器是CursorAdapteror的子类ArrayAdapter

于 2013-01-07T06:26:08.883 回答
3

适配器管理数据模型并使其适应列表视图中的各个行。它扩展了BaseAdapter类。

列表视图中的每一行都包含一个布局,可以根据需要进行复杂的操作。列表视图中的典型行在左侧有一个图像,在中间有两个文本行。

于 2014-07-16T12:29:12.820 回答
0

Adapter只是用来实现listview的概念。不仅用于显示数据列表,还用于显示一些自定义视图。假设客户想要使用具有更多文本视图(任何其他视图)的列表,那么我们必须在 Android 中使用适配器视图。

于 2017-01-31T15:46:41.643 回答
0

已经给出了多个答案,但我想给出一个不同的答案。

适配器意味着你可以它的桥提供者

适配器是一组数据和显示数据的 AdapterView 之间的链接。

于 2017-09-19T07:35:47.483 回答
0

最后,适配器对于生成报告非常有用。如果要显示某些信息的报告,可以使用此工具在视图上显示数据。

于 2018-05-28T14:28:33.487 回答