Android中要填充一些控件(如ListView)经常须要用到Adapter来实现,经常使用的有ArrayAdapter,SimpleAdapter,
CursorAdapter,BaseAdapter,前几个都是继承自BaseAdapter的。 我平时经常使用的就是ArrayAdapter,再就是
BaseAdapter了,SimpleAdapter本身事实上也不算简单。所以能用SimpleAdapter的时候我一般都用了BaseAdapter。 至于CuesorAdapter我就差点儿没用过。今天事实上是有点忘了BaseAdapter怎么用了,在这记一下,以备后用,
也就主要是讲须要注意的东西。

1.BaseAdapter一般来说都是要重写构造方法的。

事实上BaseAdapter总体而言还是比較好使用的,主要就实现四个抽象方法。可是当时突然想不起来怎么把数据传递过去了,自然就想到了构造方法。看了曾经的代码,知道了。所以这里就有个结论:要用BaseAdapter就要重写构造方法。

2 .BaseAdapter中要有Context对像。

由于BaseAdapter要填充自己写的View。所以就要用到一个LayoutInflater对象,而要获得LayoutInflater对象就须要用到LayoutInflater.from(context);方法。所以由此看来。又要记住一个小结论:要使用BaseAdapter就要定义一个Context。

要用到这个Context对象,还是要传递了,那么进而再得到一个结论:要使用BaseAdapter要在构造方法中至少传入一个Context对象參数。

3 .要使用ViewHolder类,里面包括自己定义布局里的控件。

我们知道ListView之类的须要优化。不然的话一直填充比較占内存,极端的时候可能发生内存不足的情况导致程序FC,所以就自定一个内部类ViewHolder来进行优化。所以我们再次得到一个结论:要使用BaseAdapter就自己定义一个ViewHolder类。用到的时候就实例化一个ViewHolder对象。

当convertView== null时。通过convertView = inflater.inflate(R.layout.list_item, null);初始化布局,然后初始化布局中的控件,之后调用

convertView.setTag(viewHolder);
else{
viewHolder= (ViewHolder) convertView.getTag();
}

就是又一次获得组件。而不是又一次初始化。

Android中BaseAdapter使用基础点的更多相关文章

  1. Android中BaseAdapter的基本用法和加载自定义布局!

    public class MainActivity extends Activity { ListView listView = null; @Override protected void onCr ...

  2. Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器

    一.写在前面: 本次我们来讲解一下Android应用中三个适配器:BaseAdapter.SimpleAdapter和ArrayAdapter.其中常见的是BaseAdapter,也是个人推荐使用的适 ...

  3. Android中Adapter之BaseAdapter使用

    Android界面中有时候需要显示稍微复杂的界面时,就需要我们自定义一个adapter,而此adapter就要继承BaseAdapter,重新其中的方法.         Android中Adapte ...

  4. 43.Android之ListView中BaseAdapter学习

    实际开发中个人觉得用的比较多是BaseAdapter,尽管使用起来比其他适配器有些麻烦,但是使用它却能实现很多自己喜欢的列表布局,比如ListView.GridView.Gallery.Spinner ...

  5. Android 中万能的 BaseAdapter(Spinner,ListView,GridView) 的使用!

    大家好!今天给大家讲解一下BaseAdapter(基础适配器)的用法,适配器的作用主要是用来给诸如(Spinner,ListView,GridView)来填充数据的.而(Spinner,ListVie ...

  6. Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化(转)

    Android中很多地方使用的是适配器(Adapter)机制,那我们就要好好把这个Adapter利用起来,并且用出自己的特色,来符合我们自行设计的需要喽~~~ 下面先上一个例子,是使用ViewHold ...

  7. 使用具体解释及源代码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter

    Adapter相当于一个数据源,能够给AdapterView提供数据.并依据数据创建相应的UI.能够通过调用AdapterView的setAdapter方法使得AdapterView将Adapter作 ...

  8. Android中ListView实现图文并列并且自定义分割线(完善仿微信APP)

    昨天的(今天凌晨)的博文<Android中Fragment和ViewPager那点事儿>中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使用Li ...

  9. Android笔记——BaseAdapter的使用

    Android中的适配器(Adapter)是数据与视图(View)之间的桥梁,用于对要显示的数据进行处理,并通过绑定到组件进行数据的显示. BaseAdapter是Android应用程序中经常用到的基 ...

随机推荐

  1. [LeetCode] Climbing Stairs 斐波那契数列

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  2. pip源配置

    1.使用配置文件配置文件[global]trusted-host=mirrors.aliyun.comindex-url=http://mirrors.aliyun.com/pypi/simple/ ...

  3. 关于centos防火墙

    Centos升级到7之后,内置的防火墙已经从iptables变成了firewalld Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld ...

  4. webapi 初识 net

    1.新建一个webapi 项目. 2.新建筛选器文件,用户在接口执行前后进行特性操作. public class MyActionWebApiAttribute : ActionFilterAttri ...

  5. sprak 环境搭建的坑

    1,/etc/hosts下的ip master/slave 的对照 /etc/sysconfig/network 配置: NETWORKING=yes HOSTNAME=master 以及spark/ ...

  6. HDU 1999 不可摸数【类似筛法求真因子和】

    不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  7. UVA 524 素数环 【dfs/回溯法】

    Description   A ring is composed of n (even number) circles as shown in diagram. Put natural numbers ...

  8. ansible 2.7.1 常见错误总结

    1.RequestsDependencyWarning (refer to http://blog.51cto.com/mjunetwslinux/2177727?source=dra) python ...

  9. 10.1综合强化刷题 Day1 afternoon

    一道图论好题(graph) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图, ...

  10. webpack常用配置项配置文件介绍

    一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...