适配器在Android中的作用是什么?


123

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

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

Answers:


29

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

Adapter是一个接口,其实现提供数据并控制该数据的显示。 ListView自己的适配器,可以完全控制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
  • 第四个参数:数据数组

45

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

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


21
这是我可以从文档中获得的信息。但我想详细解释
罗宾(Robin)2010年

25

我想分享我的理解。

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

打个比方

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

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

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


2
到目前为止最好的例子:D干得好!
Daksh Gargas

8

Android中的适配器是适配器视图(例如ListView)和该视图的基础数据之间的桥梁。想象一下,如果没有适配器,世界将会变成什么样!

例子

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

  • ListAdapter定义了列表中的各个行的布局和将数据提供给ListView经由所述setAdapter()的方法 ListView

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

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

  • SimpleCursorAdapter 可以处理数据库相关数据。

4

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


7
这是我可以从文档中获得的信息。但我想详细解释
罗宾(Robin)2010年

@罗宾:为什么不通过“接受”其中一项答复来庆祝问题十周年。就个人而言:1)我发现您的问题很有价值(这就是我在这里总结的方式),2)我发现这些答复中有很多有用(包括此答复)... 3)我不知道您的意思是“更详细的解释”。也许是因为我对“为什么”(上面已经解释)更加感兴趣。我在“森林”(如WarrenFaith的反应)比“详细树”更感兴趣(whichI CAN从文档中获得)。请
投票

4

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

适配器是一种将a View与某种数据源连接的聪明方法。通常,您的视图将为a ListView,数据将以a Cursor或形式出现Array。因此,适配器是CursorAdapter或的子类ArrayAdapter


2

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

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


0

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


0

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

Adapter意味着您可以为其Bridge的提供者

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


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.