【问题标题】:What's the role of adapters in Android?适配器在 Android 中的作用是什么?
【发布时间】:2011-04-10 03:37:38
【问题描述】:

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

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

【问题讨论】:

    标签: android adapter android-adapter


    【解决方案1】:

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

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

    【讨论】:

    • 这与我可以从文档中获得的信息相同。但我想要一个详细的解释
    • 如果我们想要有多个活动,每个活动都有自己的列表视图,我们是否需要为每个活动定义一个适配器?
    【解决方案2】:

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

    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
    • 第四个参数:数据数组

    【讨论】:

      【解决方案3】:

      我想分享我的理解。

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

      类比

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

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

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

      【讨论】:

      • 迄今为止最好的例子 :D 干得好!
      【解决方案4】:

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

      示例

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

      • ListAdapter 定义列表中各个行的布局和 通过setAdapter() 方法向ListView 提供数据 ListView.

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

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 这与我可以从文档中获得的信息相同。但我想要一个详细的解释
        • @Robin:你为什么不通过“接受”其中一个回复来庆祝你的问题提出 10 周年。就个人而言:1)我发现你的问题很有价值(这就是我在这里结束的方式),2)我发现其中许多回复很有帮助(包括这个)......以及 3)我不知道你所说的“更详细的解释”。也许那是因为我对“为什么”更感兴趣(如上所述)。我对“森林”(如 WarrenFaith 的回应)比对“详细树”(我 可以从文档中得到)更感兴趣。请投票并接受:)
        【解决方案6】:

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

        适配器是将View 与某种数据源连接起来的一种智能方式。通常,您的视图将是ListView,数据将以CursorArray 的形式出现。 所以适配器是CursorAdapterArrayAdapter 的子类。

        【讨论】:

          【解决方案7】:

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

          列表视图中的每一行都包含一个可以任意复杂的布局。 列表视图中的典型行在左侧有一个图像,在中间有两个文本行。

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

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

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

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

              【讨论】:

                【解决方案10】:

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2015-08-05
                  • 1970-01-01
                  • 2017-10-04
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-04-21
                  • 2012-03-03
                  • 2017-12-01
                  相关资源
                  最近更新 更多