`

如何使用 Adapter

 
阅读更多

Adapter 是listView和数据源之间的中间人



 

最简单的方法, 最慢最不实用:

public View getView(int pos, View convertView, ViewGroup parent) {
View item = mInflater.inflate(R.layout.list_item, null);
((TextView) item.findViewById(R.id.text)).setText(DATA[pos]);
((ImageView) item.findViewButId(R.id.icon))
.setImageBitmap((pos & 1) == 1 ? mIcon1 : mIcon2);
return item;
}

 

利用 convertView 回收视图, 效率提高 200%:

public View getView(int pos, View convertView, 
        ViewGroup parent){
    if (convertView == null) {
        convertView = mInflater.inflate(
                R.layout.list_item, null);
    }
    ((TextView) convertView.findViewById(R.id.text)).
            setText(DATA[pos]);
    ((ImageView) convertView.findViewButId(R.id.icon)).
            setImageBitmap((pos & 1) == 1 ? mIcon1 : mIcon2);

    return convertView;
}

 

使用 ViewHolder 模式, 效率再提高 50%:

static class ViewHolder {
    TextView text;
    ImageView icon;
}



public View getView(int pos, View convertView, ViewGroup parent){
    ViewHolder holder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list_item, null);
        holder = new ViewHolder(); 
        holder.text = (TextView) convertView.findViewById(
                R.id.text));
        holder.icon = (ImageView) convertView.findViewButId(
                R.id.icon));
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    } 
    holder.text.setText(DATA[pos]);
    holder.icon.setImageBitmap((pos & 1) == 1 ? mIcon1 : mIcon2);
 

 

  • 大小: 29.2 KB
分享到:
评论

相关推荐

    使用adapter实现listview的多种功能

    本教程将详细讲解如何使用Adapter来实现ListView的多种功能,这对于初学者来说是非常实用的知识点。 首先,我们来理解ListView的基本概念。ListView是Android提供的一个视图容器,它可以滚动显示多个行项目,每一行...

    listview gridview adapter的使用

    它们通过适配器(Adapter)来连接数据源与视图,将数据转换为可显示的UI元素。本篇将深入探讨如何使用SimpleAdapter和ArrayAdapter来实现ListView和GridView的布局。 首先,我们来了解适配器的基本概念。适配器是...

    android之各种Adapter加载数据

    总的来说,Adapter是Android开发中的核心组件,理解和熟练使用Adapter能够帮助我们更好地构建用户界面,展示动态数据。无论是在ListView、GridView,还是RecyclerView中,Adapter都扮演着不可或缺的角色。通过适配...

    1-7Adapter基础讲解

    在“1-7Adapter基础讲解”这个资料中,可能会详细阐述如何创建自定义Adapter,包括如何实例化Adapter、设置数据源、实现Adapter的方法以及如何在布局文件中使用Adapter。此外,资料可能还会涉及ListView、...

    RecycleView通用的Adapter适配器

    4. **使用Adapter** 在`Activity`或`Fragment`中,你需要设置`RecyclerView`的布局管理器(如`LinearLayoutManager`)和`Adapter`,并将其添加到布局中: ```java RecyclerView recyclerView = findViewById(R....

    android 使用之adapter大全

    在使用Adapter时,还要注意以下几点: 1. 数据源的更新:当数据源发生变化时,记得调用Adapter的notifyDataSetChanged()方法通知UI刷新。 2. 性能优化:为提高性能,通常会复用ListView或RecyclerView的Item视图,这...

    android gridview adapter 实例

    在这个"android gridview adapter 实例"中,我们将深入探讨如何使用Adapter来填充GridView,并实现每个GridView的item(单元格)显示不同的数据。 首先,理解Adapter在Android中的作用至关重要。Adapter是连接数据...

    Epicor10中Adapter使用封装

    本文将深入探讨如何在Epicor10中使用Adapter进行二次开发,并介绍对Adapter的封装技术以及UD表的加强封装。 首先,Adapter的使用是基于.NET Framework的,它通过提供一个抽象层来隐藏数据访问的复杂性,使得开发者...

    常用Adapter配合ListView使用实例

    本教程将通过一个名为“Demo_ListView”的实例详细介绍如何在Android中使用Adapter与ListView。 首先,理解Adapter的基本概念。Adapter是一个接口,用于将数据集(如数组或列表)转换为ListView可以理解的视图对象...

    Google官网上的一个Adapter优化的范例

    我们将深入探讨ViewHolder模式、ListActivity以及如何有效地使用Adapter。 首先,ViewHolder模式是解决ListView滚动时频繁创建与销毁View对象导致性能下降的问题。它通过缓存View对象的引用,避免了每次绑定数据时...

    Android应用开发-Adapter的使用.pptx

    在使用Adapter时,Controller会调用Adapter的相关方法,将Model中的数据传递给Adapter,Adapter再将数据填充到View中,形成用户可见的界面。 在实际项目中,我们可能需要创建自定义Adapter以满足特定需求,比如添加...

    android(Adapter)适配器用法总结

    在展示复杂的数据时,可以使用 BaseAdapter 或自定义的 Adapter。 在使用 Adapter 时,我们需要注意以下几点: * Adapter 需要和 ListView 绑定,以便数据能够正确地展示出来。 * Adapter 需要和数据源绑定,以便...

    Adapter抽象的示例

    4. **适配器与数据源的关联**: 在使用Adapter之前,我们需要将数据源(如ArrayList)传递给Adapter。这通常是通过构造函数完成的,比如`MyAdapter(Context context, List<Item> items)`。这样,Adapter就能访问并...

    Adapter Tuning.pdf

    - **结果分析**:实验结果显示,使用Adapter模块的方法能够达到接近最先进水平的表现,同时每个任务只需添加极少量的额外参数。具体而言,在GLUE基准测试集中,该方法的成绩只比完全微调模型低0.4%,但每个任务仅需...

    ListView ,GridView 通用Adapter ViewHolder

    为了高效地处理这些数据,开发者通常会使用Adapter来连接数据源与视图。在本主题中,我们将深入探讨“通用Adapter”和“ViewHolder”设计模式,这两种技术在优化列表性能和减少内存消耗方面扮演着关键角色。 首先,...

    通用Adapter

    5. **在Activity或Fragment中使用**:最后,在需要使用Adapter的地方,根据实际需求实例化相应的Adapter子类,并设置数据源,然后将其绑定到列表视图上。 通过这样的设计,通用Adapter可以灵活地处理复杂的数据结构...

    Android_Adapter 讲解

    使用Adapter的关键在于理解数据和视图之间的映射过程。通过`getView()`方法,开发者可以根据数据项的位置动态构建或复用视图,然后将数据填充到对应的View中。同时,还可以通过设置ViewBinder来自定义数据绑定规则,...

    Android Adapter详解(2)

    总之,Adapter在Android开发中扮演着至关重要的角色,理解和熟练使用Adapter能够帮助开发者更好地实现数据与UI的交互,提供流畅的用户体验。通过学习和实践,开发者可以掌握Adapter的各种应用场景和优化技巧。

    ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据

    在这个例子中,我们将学习如何使用Adapter来绑定更复杂的数据结构,即自定义每一项的布局,并展示多个数据字段。首先,我们来看一下标题和描述中涉及的知识点: 1. **ListView的Adapter**:Adapter是ListView的核心...

    Android应用源码之AdapterDemo.zip

    本示例"AdapterDemo.zip"提供了关于如何在Android应用中使用Adapter的详细源码,非常适合开发者进行参考和学习。在这里,我们将深入探讨Adapter的基本概念、作用,以及如何在实际项目中应用。 Adapter是一个接口,...

Global site tag (gtag.js) - Google Analytics