listview多种条目展示案例

2023-12-30 00:18

本文主要是介绍listview多种条目展示案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

	public class myAdapter extends BaseAdapter {//	获得当前条目类型public int getItemViewType(int position) {// 如果是标题,返回0if (position == 0 || position == userAppList.size() + 1) {return 0;} else {// 如果是应用条目,返回1return 1;}}//获得条目种类个数@Overridepublic int getViewTypeCount() {return super.getViewTypeCount() + 1;}@Override//所有条目总数public int getCount() {return systemAppList.size() + userAppList.size() + 2;}/** 返回当前条目*/public AppInfo getItem(int position) {if (position == 0 || position == userAppList.size() + 1) {return null;} else if (position < userAppList.size() + 1) {return userAppList.get(position - 1);} else {return systemAppList.get(position - 2 - userAppList.size());}}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {int type = getItemViewType(position);// 如果是纯文本if (type == 0) {ViewTitleHolder vth = null;if (convertView == null) {convertView = View.inflate(getApplicationContext(),R.layout.item_appinfo_title, null);vth = new ViewTitleHolder();vth.title = (TextView) convertView.findViewById(R.id.tv_appinfo_title);convertView.setTag(vth);} else {vth = (ViewTitleHolder) convertView.getTag();}if (position == 0) {vth.title.setText("用户应用(" + userAppList.size() + ")");} else {vth.title.setText("系统应用(" + systemAppList.size() + ")");}return convertView;} else {// 如果是应用介绍ViewHolder vh = null;if (convertView == null) {convertView = View.inflate(getApplicationContext(),R.layout.item_appinfo, null);vh = new ViewHolder();vh.icon = (ImageView) convertView.findViewById(R.id.iv_appIcon);vh.appName = (TextView) convertView.findViewById(R.id.tv_appName);vh.appIsSdcard = (TextView) convertView.findViewById(R.id.tv_appIsSdcard);convertView.setTag(vh);} else {vh = (ViewHolder) convertView.getTag();}AppInfo item = getItem(position);vh.icon.setImageDrawable(item.icon);vh.appName.setText(item.name);if (item.isSdcard) {vh.appIsSdcard.setText("内存储卡");} else {vh.appIsSdcard.setText("SdCard应用");}return convertView;}}}

	private ArrayList<AppInfo> systemAppList; //系统应用信息集合private ArrayList<AppInfo> userAppList; //用户应用信息集合

这篇关于listview多种条目展示案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/551148

相关文章

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

MySQL 表的内外连接案例详解

《MySQL表的内外连接案例详解》本文给大家介绍MySQL表的内外连接,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录表的内外连接(重点)内连接外连接表的内外连接(重点)内连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

Spring Boot 整合 Redis 实现数据缓存案例详解

《SpringBoot整合Redis实现数据缓存案例详解》Springboot缓存,默认使用的是ConcurrentMap的方式来实现的,然而我们在项目中并不会这么使用,本文介绍SpringB... 目录1.添加 Maven 依赖2.配置Redis属性3.创建 redisCacheManager4.使用Sp

电脑提示Winmm.dll缺失怎么办? Winmm.dll文件丢失的多种修复技巧

《电脑提示Winmm.dll缺失怎么办?Winmm.dll文件丢失的多种修复技巧》有时电脑会出现无法启动程序,因为计算机中丢失winmm.dll的情况,其实,winmm.dll丢失是一个比较常见的问... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包