ArrayAdapter和BaseAdapter的区别是什么

ListView 与ArrayAdapter,BaseAdapter,SimpleAdapter,SimpleCursorAdapter配合使用实例。 立即下载
近期很多Android开发者来函表示对ArrayAdapter和BaseAdapter的区别不是很清楚,这里Android123简单说下他们的关系和用处,ArrayAdapter是从BaseAdapter派生出来的,具备BaseAdapter的所有功能,但ArrayAdapter更为强大,它实例化时可以直接使用泛型构造,我们在Android SDK中可以看到android.widget.ArrayAdapter的字样,当然也可以使用ArrayAdapter(Context context, int textViewResourceId) 第二个参数直接绑定一个layout,下文的例子我们使用Java泛型实例化。

  通过Adapter我们构造一个支持icon的item,下面我们在getView中使用的是imageView显示图片,当然android123提示大家其实TextView也可以直接绑定一个drawable对象显示的,void setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom) 或void setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom) 和void setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom) 即可,其中第二种的int类型指定的资源id,方位则是textview什么位置显示drawable对象

  说了这么多ArrayAdapater一起看个例子,来实例化ArrayAdapter吧,我们可以修改Res/layout/icon_list_item.xml文件来实现自定义显示效果。

  public class IconListAdapter extends ArrayAdapter {

  protected LayoutInflater mInflater;

  private static final int mResource = R.layout.icon_list_item; //xml布局文件

  public IconListAdapter(Context context,

  List items) {

  super(context, mResource, items);

  mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

  }

  @Override

  public View getView(int position, View convertView, ViewGroup parent) {

  TextView text;

  ImageView image;

  View view;

  if (convertView == null) {

  view = mInflater.inflate(mResource, parent, false);

  } else {

  view = convertView;

  }

  text = (TextView) view.findViewById(R.id.text1);

  text.setText(getItem(position).getTitle());

  image = (ImageView) view.findViewById(R.id.icon); //可以使用上文说的三种方法,直接用TextView类的setCompoundDrawables等方法绑定图标显示

  image.setImageResource(getItem(position).getResource());

  return view;

  }

  public static class IconListItem { //每条显示的构造方法

  private final String mTitle;

  private final int mResource;

  public IconListItem(String title, int resource) {

  mResource = resource;

  mTitle = title;

  }

  public String getTitle() {

  return mTitle;

  }

  public int getResource() {

  return mResource;

  }

  }

  }

  当然对于ArrayAdapter到底比BaseAdapter先进到哪里呢? 从名称来看Array我们可以联系到数组的很多操作,没错Android123给大家列出本类所有成员方法实用的处理方式,比如

  void add(T object) //添加一个对象到本ArrayAdapter

  void clear() //清除所有元素

  static ArrayAdapter createFromResource(Context context, int textArrayResId, int textViewResId) //从layout资源构造arrayadapter

  Context getContext() //获取实例

  int getCount()

  View getDropDownView(int position, View convertView, ViewGroup parent) //获取drop down的popup风格选择条目的内容,参数1是位置,参数2可以通过强制转换直接获取本条的内容

  Filter getFilter() //使用正则过滤数据

  T getItem(int position) //获取单条内容

  long getItemId(int position)

  int getPosition(T item) //通过内容获取是某条

  View getView(int position, View convertView, ViewGroup parent)

  void insert(T object, int index) //插入新条目到数组的index位置

  void notifyDataSetChanged() //通知数据变化了,告诉绑定Adapter的widget来更新UI

  void remove(T object) //移出一条从数组,这里并没有指定位置

  void setDropDownViewResource(int resource) //设置dropdown的layout风格

  Sets the layout resource to create the drop down views.

  void setNotifyOnChange(boolean notifyOnChange) //本条是arrayadapter最强大的功能,android123强烈推荐处理大数据时使用该方法,可以降低ui的处理量,刷新ui可以更快速,主要可以停止对

  (add(T), insert(T, int), remove(T), clear() 的操作,当然可以通过 notifyDataSetChanged(). 或 setNotifyOnChange(true) 通知变化

  void sort(Comparator comparator) //这里是android开发网经常用的排序,使用arrayadapter可以直接排序,十分方便

  所以最终android123推荐大家什么情况使用arrayadapter,什么时候使用baseadapter。当数量较多,比如超过100条或频繁动态增减时使用arrayadapter可以方便控制ui,通过setNotifyOnChanage方法,如果比较简单仅仅呈现直接从baseadapter更节省资源

手把手教你用STM32F103的IO口模拟XY2-100协议驱动数字振镜(附Keil O3优化代码) 本文详细介绍了如何使用STM32F103的IO口模拟XY2-100协议驱动数字振镜,包括协议解析、偶校验算法、寄存器级优化及Keil O3编译下的性能调优。通过硬件配置、核心代码实现和优化技巧,帮助开发者实现高速二维偏转控制,适用于工业激光雕刻和精密定位系统。 阅读详情

相关推荐

智能驾驶域控(ADCU)方案介绍

本文主要对智能驾驶域控(ADCU)方案相关知识进行总结,以加深理解,及方便后续查漏补缺。

liuxu324的博客 1574

BaseAdapter、SimpleAdapter和ArrayAdapter三种适配器的区别及使用

什么是适配器呢? 适配器顾名思义就是把数据变成符合界面风格的形式,并且通过ListView显示出来。适配器就是数据和界面之间的桥梁。 首先演示ArrayAdapter 在布局文件夹内创建一个xml文件用来显示数组中的数据,然后在主页面布局文件中加入listview控件最后在MainActivity中创建数组适配器对象并将它显示到listview控件中,即可。 接下来演示simpleAdap...

伯nulee 6828

ROS2前置基础教程 | 使用CMakeLists.txt编译ROS2节点

答案是有的,那就是cmake工具。cmake通过调用CMakeLists.txt直接生成Makefile。 2.新建CMakeLists.txt 在新建,输入下面内容。 3.编译代码 我们一般会创建一个新的目录,运行cmake并进行编译,这样的好处是不会显得那么乱。 创建好文件夹,接着运行cmake指令,代表到上级目录找。 运行完cmake你应该可以在build目录下看到cmake自动生成的Makefile了,接着就可以运行make指令进行编译 运行完上面的指令,就可以在build目录下发现节点了。ROS2

生活不止眼前的苟且 1万+

ArrayAdapter、SimpleAdapter、BaseAdapter的区别

ArrayAdapter是数组适配器,只能显示一条文本信息。使用时要给出数据源和条目布局。(一般应用于item view模板根元素为TextView的场合,数据集比较简单。) SimpleAdapter是简单适配器,可以显示负责的信息,它的数据源形式是List<Map<Sting,?>>,使用时要给出数据源,条目布局,数据源数据Map的键数组和对应的条目布局控件id数组。...

weixin_44633720的博客 1081

EPLAN 设备接线图模板制作

属性摆放 设备连接图设置(选项 - - 设置) 连接图生成

weixin_36447711的博客 7864

2、通过mos管构成的逻辑门电路

一、总结 mos管 是构成 逻辑门电路 的最基本单元。 各个逻辑门电路的真值表如下: 二、各种门 1、非门 NOT 2、与门 AND 3、与非门 把上面与门电路 右边的 非门电路 去掉 NAND 4、或门 OR 5、或非门 NOR 把或门右边的非门电路去掉 6、异或门 XOR 两个输入相异为1,相同为0。 7、同或门 XNOR 两个输入相同为1,相异为0。 ...

engineer0的博客 4万+

Android之Adapter用法总结

Android之Adapter用法总结 1.概念 ​ 众所众知,Adapter是用于连接后端数据和前端显示的适配器接口,是数据data和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: Adapter接口的组成中 ​ 其中最常用的有以下几个 BaseAdapter是所有Adapter类的父类,所有的Adapter类的实现都是基于BaseAdapter的基础上的

weixin_46621811的博客 1万+

论文阅读《Eigen-GNN: A Graph Structure Preserving Plug-in for GNNs》

好久没看论文了,感觉好生疏 关于这篇文章的大致脉络,这篇文章已经介绍过了。

且视他人之疑目如盏盏鬼火,大胆地去走你的夜路 461

(1)Adapter适配器(ArrayAdapter、SimpleAdapter、BaseAdapter)

ArrayAdapter(数组适配器) ArrayAdapter只能显示一行文本数据 ArrayAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull T[] objects) { this(context, resource, 0, Arrays.asList(objects)) 参数...

weixin_30652897的博客 292

告别编译报错!手把手教你用VS2022命令行编译curl静态库(附完整测试代码)

本文详细介绍了如何在VS2022环境下通过命令行编译curl静态库,从环境准备、编译实战到项目集成,提供了完整的避坑指南和测试代码。特别针对常见的编译报错如LNK2019等给出了具体解决方案,帮助开发者高效完成网络库的静态编译与集成。

weixin_42557803的博客 447

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

伶俐角少儿编程 484

Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法

1.ArrayAdapter 只可以简单的显示一行文本 代码片段: [java] view plain copy ArrayAdapter adapter = new ArrayAdapter(                   this,                   R.layout.item,//只能有一个定义了id

大数据 1825

基于YOLOv11的农作物病虫害检测系统设计与实现

我们使用公开的IP102病虫害数据集作为基础,该数据集包含102种病虫害类别,覆盖水稻、小麦、玉米等多种主要农作物。图像数量:75,222张类别数:102图像分辨率:从640×480到4000×3000不等标注格式:PASCAL VOC格式此外,我们还收集了部分田间实际拍摄的图像以增强模型泛化能力。

YOLO 595

ArrayAdapter和BaseAdapter的区别

近期很多Android开发者来函表示对ArrayAdapter和BaseAdapter的区别不是很清楚,这里Android123简单说下他们的关系和用处,ArrayAdapter是从BaseAdapter派生出来的,具备BaseAdapter的所有功能,但ArrayAdapter更为强大,它实例化时可以直接使用泛型构造,我们在Android SDK中可以看到android.widget.Array

zwq1457的专栏 4478

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android中ArrayAdapter和BaseAdapter的区别

  近期很多Android开发者来函表示对ArrayAdapter和BaseAdapter的区别不是很清楚,这里Android123简单说下他们 的关系和用处,ArrayAdapter是从BaseAdapter派生出来的,具备BaseAdapter的所有功能,但ArrayAdapter更为 强大,它实例化时可以直接使用泛型构造,我们在Android SDK中可以看到android.widg...

weixin_30699443的博客 173

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ArrayAdapter和BaseAdapter的区别与用法举例

近期很多Android开发者来函表示对ArrayAdapter和BaseAdapter的区别不是很清楚,这里Android123简单说下他们的关系和用处,ArrayAdapter是从BaseAdapter派生出来的,具备BaseAdapter的所有功能,但ArrayAdapter更为强大,它实例化时可以直接使用泛型构造,我们在Android SDK中可以看到android.widget.Array

Lison 2144

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android中SimpleAdapter,ArrayAdapter和BaseAdapter详解

http://www.open-open.com/lib/view/open1376969095803.html 1.SimpleAdapter(很多时候需要继承它,来自定义adapter): simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片)等。可以显示比较复杂的列表,包括每行显示图片、文字等,但不能对列表进行后期加工(

wuxinliulei的专栏 969

Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter

总结: Adapter相当于一个数据源,可以给AdapterView提供数据,并根据数据创建对应的UI,可以通过调用AdapterView的setAdapter方法使得AdapterView将Adapter作为数据源。 Adapter接口 : Adapter接口定义了如下方法: public abstract void registerDataSetObserver (DataSetObserv...

hdquan321的博客 646

arrayadapter simpleadapter baseadapter

android Adapter剖析理解 UI控件都是跟Adapter(适配器)打交道的Adapter: 是用来帮助控件填充数据的中间桥梁 (在开发中大多数Textview控件的内容是依靠数据库传递并显示的如:新闻类)Adapter: 将各种数据以合适的形式显示到view上 (我是显示图片的控件,你给我传文字是不是不想好了,分手!)Adapter: 需要结合ListView, Gr

爱吃冰淇凌的羊驼 432

Android之ArrayAdapter用法总结

1.概念         Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: Android中所有的Adapter一览: 由图可以看到在Android中与Ad

KK的专栏 6345

android中 List、Map简单介绍及ArrayAdapter、SimpleAdapter、BaseAdapter简单总结

~~~~我的生活,我的点点滴滴!!

破茧 4535

Android之旅第四站——适配ArrayAdapter,simpleadapter和自定义adapter的区别…

1.ArrayAdapter只可以简单的显示一行文本adapter=new ArrayAdapter(this, R.layout.item_main_lv, R.id.item_main_lv_name, datas);2.SimpleAdapter可以显示比较复杂的列表,包括每行显示图片、文字等,但不能对列表进行后期加工(在Java代码中加工), 也是只是单纯的负责显示(当然可以设计复杂点的布

Li_peilun的博客 1664
上一篇: 有关代码结构的优化若干
下一篇: Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu)
founder_chenhao
博客等级 码龄11年 6粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值