<转>Android ListAdapter的高级功能

Android列表控件 / 返回适配器其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。然而Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。贵在坚持!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取![外链图片转存中…(img-5bJ4x8Ls-1712704019500)] 阅读详情

转载自:http://yidongkaifa.iteye.com/blog/1809308


昨天某同学要转行做android,我问他ListView的Adapter用哪个,他说用SimpleAdapter。如果对Adapter的认识只停留在SimpleAdapter不是很够力啊。在学习android的时候大体都经历了SimpleAdapter->BaseAdapter的过程。对于一般应用,到BaseAdapter也就够了。BaseAdapter是ListAdapter的子类,给开发者提供了一些不常用方法的默认实现。而android还提供了更多的功能要靠ListAdapter接口使用。我假设看官们已经熟悉了BaseAdapter的使用,也知道了ListView重用view来展示数据这一点。所以捡重点说。

1. 关于刷新顺序

Java代码   收藏代码
  1. long getItemId(int position)  
  2. boolean hasStableIds()  

getItemId是干嘛用的?在调用 invalidateView()时,ListView会刷新显示内容。如果内容的id是有效的,系统会跟据id来确定当前显示哪条内容,也就是firstVisibleChild的位置。id是否有效通过hasStableIds()确定。

2. 关于内容类型

Java代码   收藏代码
  1. int getItemViewType(int position)  
  2. int getViewTypeCount()  

如果ListView需要显示多种类型的内容,就需要有不同的缓存拿来使用。举个例子,position是奇数时getView()返回的是A类型的View;偶数的时候返回B类型的View。那么就需要在getViewTypeCount()中返回2;在getItemViewType()中当position是单数时返回一个值,双数时返回另外一个值。ListView根据返回值缓存和重用View,这样在getView()中调用强制类型转换就不会出现类型转换错误了。

不同类型的View也可一用FrameLayout集成在一个View中显示,这样View的结构就会变得很复杂,而且消耗更多的内存。

3. 关于点击

Java代码   收藏代码
  1. boolean areAllItemsEnabled()  
  2. boolean isEnabled(int position)  
如果不希望Item点击时出现背景颜色,就使用这两个方法。它们分别针对所有和单个View实现。以前找这个东西都是从ListView中找,却没注意它就在Adapter中。

4. 观察者模式?

Java代码   收藏代码
  1. registerDataSetObserver(DataSetObserver observer)  
  2. unregisterDataSetObserver(DataSetObserver observer)  
这两个方法是系统希望在Adapter中数据有变化时得到通知。通知做啥?刷新进图条的长度^_^。

总的来说,android对ListView的考虑还是比较细致的。作为一般使用BaseAdapter就够用了,需要显示不同类型的View等特殊控制时去实现别的方法。



基于ESP32的智能健康监测系统开发 本文介绍了如何基于ESP32开发智能健康监测系统,从硬件选型、系统架构到软件实现的每一个环节。通过ESP32的Wi-Fi功能、传感器模块和云平台的结合,我们实现了实时健康数据监测、远程查看、报警等功能。系统的低功耗特性使得其适用于长期健康监测,能够为用户提供更便捷的健康管理方案。随着技术的不断发展,未来智能健康监测系统将进一步发展。例如,增加更多的传感器,提升数据分析能力,甚至通过人工智能算法来预测用户的健康趋势,为用户提供个性化的健康建议。 阅读详情

相关推荐

POWER(十一)charge pump原理

电荷泵是一种基于电容充放电原理的DC-DC转换电路,通过开关控制实现电压转换,包括升压、降压和负压输出。其核心是利用电荷守恒原理,通过电容存储和转移电荷来改变输出电压。典型拓扑结构包括倍压电路和多阶升压电路,具有结构简单、体积小等优势。关键参数包括转换效率、输出电流能力和开关频率,适用于芯片供电、显示屏驱动等低功耗场景。LVDS部分补充说明了自举电路在驱动电路中的应用及其自同步特性。

zhlwsh的博客 2817

Android---ListAdapter

这片主要写的是ListAdapter和RecycleAdapter的比较: ListAdapter基本代码: public class TestAdapter extends ListAdapter<Integer,TestAdapter.MyViewHolder> { //这个是用来处理两个列表差别的,差异化处理化的回调。 //列表数据的差异化处理是后台异步进行的 public TestAdapter(){ super(new DiffUtil.It

本人随手记录,内容只是个人看懂程度,对内容有任何疑问请勿打扰 6075

ROS Noetic下Gazebo仿真:从零搭建两轮差速机器人(含ros_control配置避坑指南)

本文详细介绍了在ROS Noetic环境下,使用Gazebo从零搭建两轮差速机器人并进行仿真的完整流程。核心内容包括利用Xacro进行模块化建模,并重点解析了通过ros_control框架配置机器人运动控制的详细步骤与常见避坑指南,帮助开发者成功实现机器人在仿真环境中的差速驱动与运动控制。

game4的博客 620

Android学习(七)ListView Adapter

ListView Adapter这个重要 ListView的直接父类是ViewGroup也就是个容器,那么也就是说它可以自己定义了排列子View的排列规则。ListView和所要展示的内容(即数据源)之间需要Adapter(适配器)来实现。Adapter是一个桥梁,对ListView的数据进行管理,根据数据来源的不同,所使用的Adapter也不同。 有个item.xml用来定义listView一行内的布局情况。 使用ArrayAdapter最简单 (只能显示文字 一般传入的布局文件就是..

qq_40809198的博客 1583

基于本地知识库的智能问答系统架构

智能问答系统的核心可以分为4部分。1)知识库构建。2)检索。3)后处理。4)推理。知识库构建:知识库中可以包含多个向量数据库和知识图谱等,核心是怎么建立索引,使得检索时能够将与问题相关的知识给检索出来。检索:从知识库中的多个库或者知识图谱中检索出与问题相关的信息。后处理:从知识库中检索出来的信息可能是冗余的,而且可能不符合我们希望的格式要求,因此,我们需要对这些数据进行过滤,格式化等操作。推理: 基于检索出来的知识进行推理,让输出能够回答用户的问题,目前主要使用大模型进行推理。

qq_44993593的博客 1710

语言 拉丁超立方抽样_医学统计与R语言:间断时间序列分析(Interrupted time series regression)...

微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发Interrupted time series (ITS) analysis is a valuable study design for evaluating the effectiveness of population-level health interventions that have been implemented...

weixin_29300805的博客 3706

Android --- ListView与适配器

ListView 绑定的适配器是 BaseAdapter。

weixin_43244083的博客 2058

SPSS_Process—简单&平行&链式中介模型

本篇文章介绍采用SPSS的插件Process对简单中介、链式中介、平行中介模型进行检验的操作方法及结果解读。

m0_54401011的博客 4万+

Android之Adapter系列之ListAdapter接口

ListAdapter同样是一个接口,比较简单,仅仅继承Atapter,并添加了两个方法

探索未知,成就非凡 987

银河麒麟V10 SP3离线安装Nginx1.21.5全记录(附11个rpm包下载清单)

本文详细记录了在银河麒麟V10 SP3操作系统上离线安装Nginx 1.21.5的全过程,包括11个必备rpm包的下载清单。通过分步骤的实战指南,帮助用户在国产化环境中高效部署Nginx服务,涵盖安装、配置、调优及故障排查等关键环节,特别适合金融、政务等对安全性要求高的场景。

weixin_30872337的博客 605

学Simulink——基于AI融合与智能调度的场实例:联邦学习支持的多卫星协同通信建模

本文介绍了一种基于联邦学习的多卫星协同通信Simulink建模方法。系统采用"星-星协同+星-地协调"架构,每颗卫星本地训练LSTM链路预测模型,地面中心通过FedAvg算法聚合模型参数。建模过程包括卫星通信模型构建、联邦学习机制设计、协同决策系统开发等步骤,支持隐私保护、高效协同和智能决策。仿真结果表明,该方法在预测准确率(89%)、吞吐量(56.7Mbps)等方面优于独立训练模式,接近集中式训练性能。该方案为大规模卫星星座的智能协同提供了仿真验证平台,未来可拓展去中心化联邦学习、异构

xiaoheshang_123的博客 210

Android控件之ListView+Adapter

FruitAdapter重写了父类的一组构造函数,用于将上下文、ListView子项布局的id和数据都传递进来。另外又重写了getView()方法,这个方法在每个子项被滚动到屏幕内的时候会被调用。在getView()方法中,首先通过getItem()方法得到当前项的Fruit实例,然后使用LayoutInflater来为这个子项加载我们传入的布局。关于LayoutInflater代码的详细解释如下,我们通过LayoutInflater的from()方法可以构建出一个LayoutInflater对象,然后调用

weixin_57244464的博客 2064

可疑物品遗留检测系统:基于YOLOv8的智能安防解决方案

数据采集与标注模块:负责收集和标注可疑物品图像数据模型训练模块:基于YOLOv8算法训练检测模型推理检测模块:加载训练好的模型进行实时检测用户界面模块:提供友好的操作界面和可视化结果展示报警模块:当检测到可疑物品时触发报警机制:包含多种暴力场景和可疑物品SUAVe:监控场景下的异常行为与物品数据集:包含多种可疑物品自建数据集:针对特定场景收集的数据背包(backpack)手提箱(suitcase)无人看管的包裹(package)可疑箱子(box)

YOLO 435

安卓开发之ListAdapter(一)

Adapter常用来管理数据,是连接后端数据和前端显示的适配器接口,是数据和UI(view)之间一个重要的纽带。再常见的view(listview、gridview)等地方都需要用到adapter,下面我们来讲讲SimpleAdapter: •SimpleAdapter类:一个使静态数据和在xml中定义的Views对应起来的简单adapter。 •构造方法: ...

a632336731的博客 621

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android 筑基——使用 recyclerview 库的 ListAdapter 需要注意的地方

目录1 前言2 正文2.1 基本使用2.2 问题解决3 最后 1 前言 在查看 google 的开源项目 sunflower 时看到使用到了 ListAdapter,开始以为是之前对应 ListView 的那个 ListAdapter,实际上是 recyclerview 库里提供的。自己也就跟着使用到了项目中。当然,经历了一些问题后,才比较好地掌握了 ListAdapter 的正确使用方法。 本文主要会回答如下的问题: 为什么提供同样引用的集合给 ListAdapter后,没有任何反映? 为什么使用 Li

willwaywang6 7814

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android中ListView等使用的Adapter简介

1.介绍: Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。很多常见的View(如:ListView,Spinner,GridView等)都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: 注意: (1)适配器用来将不同的数据映射到View上。不同的数据对应不同的适配器,如ArrayAdapter,C...

guihaiyuan123的博客 1954

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android基础 学习之List 和 Adapter

1.基本的ListView 在布局文件添加ListView ,并在java代码中取出: ListView lv_test =(ListView)findViewById(R.id.lv_test); 创建适配器并绑定 ArrayAdapterString> adapter = new ArrayAdapterString>(this, androi

青芸的博客 725

android listview 详细页,Android ListView和ListAdapter

一个ListView显示出来需要3个东西:1,listview(用来显示数据的列表)。2,Data(需要显示的数据)。3,一个绑定Data和Listview的适配器ListAdapter。一,ListView1,ListView的每一项其实都是TextView。2,通过setAdapter方法来调用一个listAdapter来绑定数据。二,ListAdapter1,ListAdapter是绑定Da...

weixin_42347634的博客 567

【Android】RecyclerView ListAdapter使用实例(Java),含OnClickListener及OnLongClickListener

的具体实现类,优势是可以检测数据变化并将差异报告给RecyclerView,而不用整体刷新,节约性能开销。事件监听,可直接复制粘贴,省下这一份时间。的Java使用实例分享给大家,注意是。需要更改的地方见注释。

qq_46000982的博客 896

【Android】ListAdapter的常用的子类

文章目录一、ListAdapter1.继承关系2.用于二、ArrayAdapter(数组适配器)1.原型2.ArrayAdapter构建例子(1)String数组(2)List泛型容器(3)自定义三、SimpleAdapter1.原型2.SimpleAdapter构建(1)对条目创建自定义布局(2)数据源 一、ListAdapter 1.继承关系 常用的子类是ArrayAdapter、Simp...

sandalphon4869的博客 950

Android之适配器模式的应用(ListView与Adapter)

Android之适配器模式的应用(ListView与Adapter)

OYMNCHR的博客 1589

Android 之 Adapter基础讲解

好的,多说无益,写代码最实际,接下来我们来用写几个简单的Adapter实例, 帮助我们了解Adapter给我们带来的便利,另外,因为Adapter需要结合ListView, GridView等等控件讲解,一些高级一点的用法我们都放在ListView那里讲!从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用这个Adapter很重要, Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式显示到view上,提供 给用户看!

leyang0910的博客 1686

android应用开发全程实录-你有多熟悉listview?

今天给大家带来《android应用开发全程实录》中关于listview和adatper中的部分。包括listview的基本使用,listview的优化等。 我们经常会在应用程序中使用列表的形式来展现一些内容,所以学好ListView是非常必需的。ListView也是Android中比较难以使用的控件,这节内容就将详细解读ListView的用法。 一个ListView通常有两个职责。 (1)将...

weixin_30367873的博客 2020

Android List,Adapter相关

List, ListView, ListActivity, Adapter, ListAdapter, ArrayAdapter, SimpleAdapter,SimpleCursorAdapter 的关系 一个ListActivity是一个Activity, 它派生于android.app.Activity; 一个ListActivity必须包含一个ListView, 可以通过getLi...

weixin_30295091的博客 534

Android--ListView作用详解

1.ListView   ListView列表视图控件是Android中常用的控件之一,其直接继承了AbsListView,是一个以垂直方式在项目中显示View视图的列表。ListView的数据项,来自一个继承了ListAdapter接口的适配器。   ListView的常用属性一般就是用来设置列表的间隔、分割线、表头、表尾等属性的,常用属性有以下几个,并且Android也为其提供了对应的se...

streate的专栏 5705

Android—ListView和Adapter的用法

1、ListView和Adapter介绍 ListView是Android最常用的控件,它的重要性不言而喻。 一个listView通常有两个职责: (1)将数据填充到布局。 (2)处理用户的选择点击等操作。 第一点很好理解,ListView就是实现这个功能的。第二点也不难做到,在后面的学习中读者会发现,这非常简单。 一个ListView的创建需要3个元素: (1)ListView中的

一个优秀的废人 1119
上一篇: onInterceptTouchEvent和onTouchEvent调用时序
下一篇: android 关于连接到网络的知识
恶魔果实
博客等级 码龄15年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值