首页
学习
活动
专区
圈层
工具
发布

自定义ArrayAdapter

一、自定义ArrayAdapter 从上期自定义列表项示例知道,每个列表项的图标都一样,如果需要每个列表项的图标根据内容动态表示,Android系统的ArrayAdapter就无能为力了,就只能使用自定义...做法就是创建一个ArrayAdapter的子类,重写其getView()方法,再构建不同的列表项。...其中getView()方法返回的是一个View,也就是与Adapter数据对应的相应位置的行。 在学习自定义ArrayAdapter前,一起先来学习一下LayoutInflater类。...二、示例 接下来用一个示例来学习如何自定义ArrayAdapter,需要重写getView()方法,在不同对的行中根据内容显示不同的图标。...接下来为ListView提供Adapter,使用自定义ArrayAdapter决定ListView所要显示的列表项。

1.9K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android学习笔记----ListView和各种适配器简介

    ),这个mAdapter已经用new myAdapter()实例化了,那么到底什么时候调用getView呢?...调用getView会回调实现类的getView,我们来看看mAdapter什么时候调用了getView,现在来看看AbsListView里面的mAdapter.getView(...)会在哪里调用?...ArrayAdapter 知道这一信息,所以 ListView 对 ArrayAdapter 调用方法,即用户当前正在查看的列表位置。...比如,ListView 请求的是位置 6 处的项,并向 ArrayAdapter 传入可重复使用的以前视图,ArrayAdapter 可以通过在回收过的视图里放入数据,使用回收的视图,然后再接着比如通过调用...当ArrayAdapter填充单个TextView时,使用第二个参数。因为这是我们自定义的适配器,所以适配器将不使用第二个参数,因此它可以是任何值。在这里,我们使用0。

    3.2K10

    ListView详细介绍与使用

    ListView 提供的 xml 属性 XML 属性 说明 备注 android:divider 设置 List 列表项的分隔条(可用颜色分割,也可用图片 Drawable 分割) 不设置列表之间的分割线...BaseAdapter:这个是我们在实际开发中经常用到的,我们需要继承 BaseAdapter 来自定义我们自己的适配器 常用适配器介绍与使用 ArrayAdapter 特定:使用简单、用于将数组、List...,会多次调用 @Override public View getView(int position, View convertView, ViewGroup parent) { return null...结合上面的 4 个方法了解一下 ListView 的绘制过程: 通过调用 getCount() 获取 ListView 的长度(item 的个数) 通过调用getView() ,根据 ListView...Adapter 的一些其他优化 getView 内部应做尽可能少的业务逻辑处理。因为 getView 调用很频繁。 关于可见和不可见的逻辑可以提前在数据源里面填充好。

    2.1K20

    android之ArrayAdapter的重写

    昨天介绍了ArrayAdapter的使用,今天介绍一下更加实用的一点,对它进行重写,满足自己的个性化设计需要. ArrayAdapter(数组适配器)一般用于显示一行文本信息,所以比较容易。...1是系统内置布局,样式就是如下 例子二:这个例子可以增加一个ImageView,但是在设置ArrayAdapter的时候需要增加这个自定义的布局 public ArrayAdapter(Context...第二个参数是自定义的布局文件,比如下面的就是R.layout.list_item。第三个参数是布局中用来显示文字的TextView的id,第四个参数是数据集合,跟例一一样 自定义ArrayAdapter public class ImageListAdapter extends ArrayAdapter{ private int resource;...// 当手动完成适配时,必须手动映射数据,这需要重写getView()方法。 // 系统在绘制列表的每一行的时候将调用此方法。

    96620

    跟我学Android之十一 列表和适配器

    uAdapterView显示的多个“列表项”由Adapter提供。调用AdapterView的setAdapter(Adapter)方法设置 Adapter即可。...dataList.size();} u覆盖getView()方法,用于向列表提供列表项的显示视图 View getView (int position, View convertView, ViewGroup...parent) Ø列表项视图通常有两种方法 l通过布局资源定义,然后采用动态加载的方法使用 l通过程序实现布局 创建自定义适配器, getView()方法覆盖示例 public View getView...(adapter); 实现带图片的Spinner u需要自定义Spinner的列表项视图 u使用自定义列表项视图的办法有多种 Ø通过自定义适配器来使用 Ø通过继承ArrayAdapter,覆盖getDropDownView...()方法 实现带图片的Spinner,通过覆盖getDropDownView()方法实现自定义视图 ArrayAdapter adapter =new ArrayAdapter

    90910

    Android最常用的控件ListView(详解)

    2、ArrayAdapter可以通过泛型来指定要适配的数据类型,然后在构造凼数中把要适配的数据传入。 3、ArrayAdapter有多个构造函数的重载,可以根据实际情况选择最合适的一种。...int resource, @NonNull List objects) { super(context, resource, objects); } //每个子项被滚动到屏幕内的时候会被调用...原因在于,当我们想用一些其他的展现方式,或者是本案例我们需要的图文混排的呈现方式,这就需要DIY了。 1.我们定义一个自定义适配器 FruitAdapter继承ArrayAdapter。...2.自定义适配器中常用的方法:getCount、getView、getItem、getItemId。...getView()方法中的convertView参数,用于将之前加载好的布局进行缓存,以便之 后可以进行重用。

    5.7K10

    Adapter与ListView的简单应用(下)Android应用界面开发

    Android应用界面开发 第二章学习 第二部分#### ---- 1.继续分析Adapter的常用类 上一篇文章使用了ArrayAdapte制作了一个只由简单的文字组成的ListView,那ArrayAdapter...发现,既然ArrayAdapter是接受泛型的,那其实什么样的类都能传给它,并且它继承自BaseAdapter,可使用的方法很多。...ArrayAdapter类,用于处理Data变量与控件属性的关系。...context, int resource, List objects) { super(context, resource, objects); //调用ArrayAdapter的构造方法...; } } 其中position是item的顺序编号,此编号与List中的Data位置相同 其它不难理解,在其中创建了一个内部类ViewHolder,因为调用getview方法时,不需要每次都创建

    91620

    ListView详解

    1.使用adapter 最简单的是ArrayAdapter,处理的是字符串 ArrayAdapter adapter = new ArrayAdapter(this...只是字符串就用ArrayAdapter,用到图文混排的就用自定义的 2.listview的优化(convertView,viewholder) 首先来了解一下ListView的工作原理。...ListView 针对每个item,要求 adapter“返回一个视图” (getView),也就是说ListView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到ListView...的长度,然后根据这个长度,调用getView()一行一行的绘制ListView的每一项。...界面上有多少个条显示,就会调用多少次的getView()方法;因此如果在每次调用的时候,如果不进行优化,每次都会使用View.inflate(….)的方法,都要将xml文件解析,并显示到界面上,这是非常消耗资源的

    1.6K60

    Android学习--ListView

    ,用下面的方法:         ArrayAdapter adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item...在iOS中,(如果你懂iOS)你肯定知道我们的TableView用的很多时候,需要你去自定义Cell,我们下面说的自定义安卓ListView的适配器就是我们iOS中说的自定义Cell,这个才是重点,相信你也知道...二:自定义ListViwe适配器(自定义ListView界面)    我们在这里自定义一个叫 FruitAdapter 的适配器,我们看一下这个适配器里面的内容:         重点还是看看这个FruitAdapter...适配器里面的getView这个方法,这个方法的具体代码如下,并且这个方法里面已经是对ListView进行了优化的,看具体的注释内容: image.png 说说自己理解的这个优化的过程:          ...二:  我们再看看另一个ViewHolder,这个的作用就是对控件进行缓存,因为要是不缓存的话你每一次getView的时候获取到的控件的时候都要进行一次 findViewById方法进行读取,这样我们利用这个

    1.5K90

    Carson带你学Android:全面解析列表ListView与AdapterView

    Listview提供的XML属性: XML属性 说明 备注 android:divider 设置List列表项的分隔条(可用颜色分割,也可用图片(Drawable)分割 不设置列表之间的分割线,可设置属性为...都是常用的实现适配器的类 ArrayAdapter:简单、易用的Adapter,用于将数组绑定为列表项的数据源,支持泛型操作 SimpleAdapter:功能强大的Adapter,用于将XML中控件绑定为列表项的数据源...SimpleCursorAdapter:与SimpleAdapter类似,用于绑定游标(直接从数据数取出数据)作为列表项的数据源 BaseAdapter:可自定义ListView,通用用于被扩展。...6.2 SimpleAdapter 定义:功能强大的Adapter,用于将XML中控件绑定作为列表项的数据源 特点:可对每个列表项进行定制(自定义布局),能满足大多数开发的需求场景,灵活性较大 步骤...,其中最重要的即为getView()方法。

    1.8K10

    Andriod基础——Adapter类

    SimpleAdapter有最好的扩充性,可以自定义出各种效果。 SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。...,listView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到listView的长度(这也是为什么在开始的第一张图特别的标出列表长度),然后根据这个长度,调用getView...如果你的getCount()返回值是0的话,列表将不显示同样return 1,就只显示一行。   系统显示列表时,首先实例化一个适配器(这里将实例化自定义的适配器)。...当手动完成适配时,必须手动映射数据,这需要重写getView()方法。系统在绘制列表的每一行的时候将调用此方法。...至此一个自定义的listView就完成了,现在让我们回过头从新审视这个过程。系统要绘制ListView了,他首先获得要绘制的这个列表的长度,然后开始绘制第一行,怎么绘制呢?调用getView()函数。

    2.1K50

    Fragment基本使用

    Fragment使用 使用Fragment有两种方式,分别是静态加载和动态加载 2.1 静态加载 关于静态加载的流程如下: 定义Fragment的xml布局文件 自定义Fragment类,继承Fragment...简单示例: 同静态加载一样,首先定义Fragment的布局和类,修改主布局文件,不指定标签的name属性。...如果要获取Activity对象,不建议调用getActivity(),而是在onAttach()中将Context对象强转为Activity对象 示例: public class Fragment1 extends...listView = (ListView) getView().findViewById(R.id.list);//获取自己视图里的控件引用,方法二 ArrayAdapter arrayAdapter...().findViewById(R.id.list);//获取自己视图里的控件引用,方法二 ArrayAdapter arrayAdapter = new ArrayAdapter<String

    2.7K30

    常用数据适配器ArrayAdapter

    当想要实现一个非常简单单一的列表的时候,可以使用ArrayAdapter,测试一下,定义一个静态的成员属性数组String[] list={“功能1”,”功能2”},布局文件中使用ListView控件,...定义id,activity里面获取这个ListView对象,调用ListView对象的setAdapter()方法,参数中传入一个ArrayAdapter对象。...上下文对象,resource布局文件的id如R.layout.list,textviewResourceId布局文件中TextView的id,objects是数据数组,ArrayAdapter实际上继承了...BaseAdapter里面有两个主要的方法,getCount()和getView(),内部实现和上一节是一样的。...View类的inflate()方法 实际上就是调用LayoutInflater对象的inflate()方法,通过LayoutInflater类的from()方法来获取LayoutInflater对象 activity

    50240
    领券