ListView的setEmptyView方法

简介: 在Android开发中,`ListView`的`setEmptyView`方法用于设置数据为空时的提示视图。通过在XML中定义一个与`ListView`同级的提示视图,并调用`listview.setEmptyView(otherview)`即可实现。源码显示,该方法将提示视图赋值给成员变量`mEmptyView`,并通过判断适配器是否为空来切换`ListView`和`emptyView`的显示状态。若数据为空,则显示`emptyView`;否则显示`ListView`。这种方法简化了视图控制逻辑,使代码更加清晰整洁。

ListView的setEmptyView方法

在Android开发中,用ListView显示数据时,如果数据为空,通常需要显示一个提示视图。
有一种方法是使用setVisibility方法设置视图是隐藏还是显示,但是这种操作会比较繁琐,且让我们的代码看起来很乱。所以才有必要写一遍关于setEmptyView方法的文章。

用法也非常简单:在xml中放置一个跟ListView同样位置,同样大小的提示视图(提示视图和listview组件要在一个Parent),然后在listview.setAdapter()后使用 listview.setEmptyView(otherview); otherview=提示视图。

源码如下:!
1.png

由上可知:setEmptyView把emptyView赋值到成员变量mEmptyView里,并判断adpater是不是为空,然后调用updateEmptyStatus(empty)来更新视图,
2.png

由上图可知updateEmptyStatus方法中:判断如果adapter为空,则把mEmptyView的visible属性改成显示,否则把listview显示。

通过源码可知:控制emptyView的显示,就是隐藏listview,这两个试图互相隐藏显示。

相关文章
|
6月前
|
存储 监控 Java
Spring Cloud 集成 Nacos,全面的配置中心与服务发现解决方案
通过 Spring Cloud Alibaba Nacos 的集成,可以获得一个功能完整、性能优异、易于运维的微服务基础设施平台,大大降低了微服务架构的复杂度和维护成本。
758 1
|
7月前
|
机器学习/深度学习 人工智能 算法
铁路障碍物目标检测数据集(5500+张已标注图像)| 适用于YOLO/Mask R-CNN/Detectron2训练的AI视觉数据集
本篇文章将为大家详细介绍一个专门面向铁路视觉检测任务构建的高质量数据集: 铁路障碍物目标检测数据集(5500+高质量标注图像) 该数据集可直接用于训练主流视觉模型,如 YOLO系列、Mask R-CNN、Detectron2 等目标检测或实例分割算法,非常适合用于科研、项目开发以及算法验证。 接下来,我们将从数据集背景、数据集结构、类别信息、数据特点、应用场景以及个人心得等多个方面进行全面介绍。
|
Ubuntu Linux Windows
ubuntu快把我搞疯了,记录一下坑
结论就是, 用惯了windows的人, 千万不要尝试linux, 会哭死的.
|
缓存 JavaScript 前端开发
高效打造跨平台桌面应用:Electron加载服务器端JS
【9月更文挑战第17天】Electron 是一个基于 Chromium 和 Node.js 的开源框架,允许使用 HTML、CSS 和 JavaScript 构建跨平台桌面应用。加载服务器端 JS 可增强应用灵活性,实现代码复用、动态更新及实时通信。通过 HTTP 请求、WebSocket 或文件系统可实现加载,但需注意安全性、性能和兼容性问题。开发者应根据需求选择合适方法并谨慎实施。
953 3
|
设计模式 前端开发 Android开发
Android应用开发中的MVP架构模式解析
【5月更文挑战第25天】本文深入探讨了在Android应用开发中广泛采用的一种设计模式——Model-View-Presenter (MVP)。文章首先概述了MVP架构的基本概念和组件,接着分析了它与传统MVC模式的区别,并详细阐述了如何在实际开发中实现MVP架构。最后,通过一个具体案例,展示了MVP架构如何提高代码的可维护性和可测试性,以及它给开发者带来的其他潜在好处。
|
IDE 编译器 项目管理
Dev-C++保姆级安装教程:Win10/Win11环境配置+避坑指南(附下载验证)
Dev-C++ 是一款专为 Windows 系统设计的轻量级 C/C++ 集成开发环境(IDE),内置 MinGW 编译器与调试器,支持代码高亮、项目管理等功能。4.9.9 版本作为经典稳定版,适合初学者和教学使用。本文详细介绍其安装流程、配置方法、功能验证及常见问题解决,同时提供进阶技巧和扩展学习资源,帮助用户快速上手并高效开发。
|
Android开发
Android 中选项菜单(Option menu)的用法
Android 中选项菜单(Option menu)的用法
637 0
|
缓存 API 开发工具
Qwen-coder方向-如果从0开始应用通义千问开源大模型
从0开始接触,带您全面了解Qwen2.5语言模型家族,包括其核心功能、微调方法以及具体应用场景。我们将通过一系列精心准备的应用demo和使用指南,帮助您掌握如何充分利用Qwen2.5的强大能力
2550 8
|
存储 API Android开发
29. 【Android教程】折叠列表 ExpandableListView
29. 【Android教程】折叠列表 ExpandableListView
1599 2
|
XML Java Android开发
15. 【Android教程】按钮 Button/ImageButton
15. 【Android教程】按钮 Button/ImageButton
757 2