`

Android Adapter

阅读更多
Adapter是用来帮助填充数据的中间桥梁,比如通过它将数据填充到ListView, GridView, Gallery.而android 提供了几种Adapter:ArrayAdapter<T>, BaseAdapter, CursorAdapter, HeaderViewListAdapter, ListAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, SpinnerAdapter, WrapperListAdapter.我猜想这些Adapter的区别在于你的数据来源不一样:比如若你的数据来源于一个Arraylist 就使用BaseAdapter,SimpleAdapter,而数据来源于通过查询数据库获得Cursor那就使用SimpleCursorAdapter等。就目前我经常使用的BaseAdapter和SimpleCursorAdapter。


1,BaseAdapter:---数据来源于Arraylist-->MyArraylist
当你继承BaseAdapter客制化你的Adapter时,你必须OverWrite以下函数:
@Override
		public int getCount() {
			// TODO Auto-generated method stub
			System.out.println("the size is\t" +            MyArraylist.size());
			return MyArraylist.size();
		}

getCount返回的就是你的有多少条数据需要绑定的,也就是需要多少个View.比如这里返回的就是MyArraylist的Size.
public View getView(int position, View v, ViewGroup parent) {
			// TODO Auto-generated method stub
			
			View view;
			if (v == null) {
				view = mInflater.inflate(R.layout.track_list_item, null);
			} else {
				view = v;
			}}


通过getView就获得了view来显示数据了。在这里你就可以自定义你的View了,但你通过XML定义可以通过LayoutInflater来inflater你的XML。getView里面就可以将MyArraylist的数据通过position 这个来将数据一条绑定一个View了。


2,SimpleCursorAdapter:---数据来源于数据库--->MyCursor
转自:http://blog.csdn.net/wong_judy/archive/2010/04/09/5466583.aspx

要实现bindView()和newView()这两个抽象方法需要实现的内容。

public void bindView(View view, Context context, Cursor cursor),重用一个已有的view,使其显示当前cursor所指向的数据。

public View newView(Context context, Cursor cursor, ViewGroup parent),为cursor所指向的数据新建一个View对象,并显示其数据。

通俗的说:比如你一个listview在一个屏幕里一次只能显示8条数据,那么第一次显示的时候就会newView 8次生成8个View,调用bindView绑定8条数据,而你有16条数据,但你拖动滚动条看9-16条时,此时不会再调用newView了,而只能调用了bindView去绑定新的数据而了。这样就省了空间了。


注意:传入到CursorAdapter中的Cursor结果集必须包含有列名为_id的列,否则SimpleCursorAdapter将不会起作用。

对于SimpleCursorAdapter中的newView与bindView的作用在BaseAdapter中的getView中也有这样的意义:getView里面我们必须做判断才能达到这种效果,就是要判断第二个参数View的是否为空:当空时就Infalte新的View,但不为空时就要就用它,这样就第一屏幕Infate 8个View,后面就直接使用这个8个view了。

注意:getView中是返回一个view,必须返回的是你infalte之后不为空的View,不然会报空指针异常。












分享到:
评论
4 楼 追求幸福 2011-07-14  
xwangly 写道
一直以为newView只会调用一次,今天打日志发现,居然不是的,原来第一次显示的Item都是调用newView infalte出来的。

嗯!是这样的。
3 楼 xwangly 2011-07-14  
一直以为newView只会调用一次,今天打日志发现,居然不是的,原来第一次显示的Item都是调用newView infalte出来的。
2 楼 追求幸福 2011-04-08  
zhaoyu_h 写道
太好了。。谢谢噢。。。。

不用谢!
1 楼 zhaoyu_h 2011-04-08  
太好了。。谢谢噢。。。。

相关推荐

    android adapter详解

    Android Adapter 详解 Android Adapter 是 Android 开发中一个重要的组件,负责将数据绑定到用户界面中。今天,我们将深入探讨 Android Adapter 的原理和实现方式。 什么是 Android Adapter? Android Adapter 是...

    android Adapter教程

    ### Android Adapter 深度解析及应用实例 #### 一、Adapter 在 Android 开发中的核心作用 在 Android 开发中,Adapter 扮演着至关重要的角色,它作为桥梁,连接了后端数据与前端界面(UI)。具体而言,Adapter ...

    android adapter 开发总结

    在Android开发中,Adapter是一个至关重要的组件,它用于在数据模型和用户界面之间建立桥梁,使得数据能够适配并展示在各种视图组件上,如ListView、GridView等。本篇文章将深入探讨Android Adapter的特性、应用及其...

    android adapter

    Android中的Adapter模式是用来在视图组件和数据源之间提供一个接口,以便在数据改变时更新视图。Adapter模式在Android UI开发中扮演着非常关键的角色,特别是对于列表视图(ListView)和网格视图(GridView)的适配...

    Android Adapter里面嵌套ListView实例详解

    Android Adapter里面嵌套ListView实例详解 Android Adapter里面嵌套ListView实例详解是Android开发中的一种常见设计,即在一个ListView中嵌套另一个ListView。这种设计可以实现复杂的列表显示,但是需要特殊处理以...

    Android Adapter详解(2)

    在Android开发中,Adapter是一个非常重要的组件,它起到了数据与视图之间的桥梁作用。这篇博客“Android Adapter详解(2)”可能会深入探讨Adapter的工作原理、如何使用以及一些常见问题的解决方法。由于没有直接提供...

    Android Adapter的使用

    在Android开发中,Adapter是一个非常重要的组件,它起到了数据源与UI展示之间的桥梁作用。本文将深入探讨Android适配器的使用,特别是针对初学者,旨在帮助他们更好地理解和掌握这一核心概念。 首先,我们来理解...

    android之各种Adapter加载数据

    在Android开发中,Adapter是一个非常重要的组件,它起到了数据源与UI展示之间的桥梁作用。本文将深入探讨Android的Adapter机制,以及如何使用各种Adapter来加载数据。 首先,我们需要理解Adapter的基本概念。...

    android adapter demo

    在Android开发中,Adapter是一个非常重要的组件,尤其在处理数据展示时,如ListView、GridView、RecyclerView等。"android adapter demo"这个项目显然旨在演示如何在Android应用中有效地使用Adapter来实现列表视图与...

    android adapter 驱动.rar(XP系统用的,绝对可用)

    整合了网上发布的资源,这个绝对可以装好!(里面有两个文件)

    Android之Adapter用法总结

    ### Android之Adapter用法总结 #### 一、概念与作用 **Adapter** 是 Android 开发中连接后端数据和前端视图的一个关键组件。它作为数据和用户界面(UI)之间的桥梁,在Android开发中扮演着极其重要的角色。尤其是...

    android中adapter的使用

    在Android开发中,Adapter是一个非常重要的组件,它起到了数据与视图之间的桥梁作用。Adapter类允许我们将数据集合(如数组或列表)绑定到UI组件,如ListView、GridView或Spinner等。在Android中,我们通常会遇到三...

    android listview 自反射 adapter

    首先,我们需要了解Adapter在Android中的作用。Adapter是连接ListView和数据源的桥梁,它将数据转化为ListView可以显示的View。通常,开发者会创建一个继承自BaseAdapter的自定义Adapter,重写其中的方法,如`...

    Android ListView adapter不同布局

    "Android ListView adapter不同布局"这个主题就是关于如何在ListView中实现这样的功能。 首先,我们了解ListView的工作原理。ListView依赖于Adapter来填充数据。Adapter就像一个桥梁,连接数据源(如ArrayList)和...

    android 一个对adapter的封装使用

    在Android开发中,Adapter是一个非常重要的组件,它起到了数据与视图之间的桥梁作用。Adapter类通常用于将数据源(如数组或列表)映射到UI组件,如ListView、GridView等。在这个“android 一个对adapter的封装使用”...

    android recyclerview adapter 照片选择器

    android recyclerview adapter 照片选择器 给recyclerview 添加adapter适置器进行照片选择,可以对recyclerview进行行数和张数的设置,也可以对已选择的照片进行增减。

    基于Eclipse的 Android Adapter在ListView和GridView中的应用

    ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字 SimpleAdapter:同样具有良好扩展性的一个Adapter,可以自定义多种效果 SimpleCursorAdapter:用于显示简单文本类型的listView,一般在数据库...

    在ListView中自定义Adapter

    为便于学习自定义的Adapter,本案例的界面未进行美化,功能已经实现,对于其中的getView(int position,View view ,ViewGroup vg)做了数据的填充操作。本案例功能及其简单,只涉及ListView中自定义适配器,没有对...

    Android简单使用ListView和Adapter

    本教程将详细介绍如何在Android中简单使用ListView和Adapter来实现数据显示,并演示如何添加删除功能。 首先,你需要在布局文件中定义一个ListView。在XML文件中,你可以使用`&lt;ListView&gt;`标签来创建ListView,并为...

    Android adapter详解

    适配器(Adapter)在Android开发中是一个非常重要的概念,它主要用于处理数据源和UI组件之间的数据流动和转换。适配器作为数据和UI之间的桥梁,能够把后端数据适配到前端的显示界面,使之能够按照一定的格式显示出来...

Global site tag (gtag.js) - Google Analytics