快速处理ListView为空的情况

在移动开发中经常会使用到列表显示,对于列表显示我们经常使用的就是ListView控件。在显示列表的时候通常有两种情况:

一、列表是满的;

二、列表是空的;

在没有数据的时候我们应该怎么处理呢?有一个简单的方法可以解决问题,我们来看一下。

ListView和其他继承自AdapterView的类可以使用setEmptyView(View view)方法设置空状态下的显示。当绘制AdapterView的适配器为空或者isEmpty方法返回true,此时就会显示setEmptyView(View view)方法设置的视图。

例如:我们在界面上显示如下视图。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <ListView
    android:id="@+id/empty_listview_lv"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  <ImageView
    android:id="@+id/empty_imageview_iv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/bg"
    android:visibility="gone"/>
</FrameLayout>

在ListView下显示一个ImageView,注意我在测试的时候发现ImageView一定设置android:visibility=”gone”否则不管ListView的适配器是否为空都会显示。

在Activity中我们可以这样设置:

public class EmptyListViewActivity extends Activity {

  private ListView empty_listview_lv;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.empty_listview_layout);
    empty_listview_lv = (ListView) findViewById(R.id.empty_listview_lv);
    String[] mListStr = {"1","2","3","3","4"};
    empty_listview_lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mListStr));
    empty_listview_lv.setEmptyView(findViewById(R.id.empty_imageview_iv));
  }
}

这样当我们的数据为空的时候可以把empty_listview_lv.setAdapter(null);这样就会显示ImageView(注:不需要把ImageView的visibility设置为可见);

附:有数据显示

没有数据情况显示

以上这篇快速处理ListView为空的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决Android ListView数据为空及加载错误的方法

    在项目中,都会用到ListView或GridView等列表控件.一般会用来展示从网络请求的数据 .如果请求的数据为空或者在请求的时候正好无没有网络了,我们的界面应该如何展示呢?数据为空的时候,ListView可以使用setEmptyView (View emptyView) 方法来我们需要的统一界面.数据加载失败呢?我们也可以统一进行处理. //下面这个类是简单地封装用于无数据及加载错误的一个页面. public class CommonShowView { private Context mC

  • 快速处理ListView为空的情况

    在移动开发中经常会使用到列表显示,对于列表显示我们经常使用的就是ListView控件.在显示列表的时候通常有两种情况: 一.列表是满的: 二.列表是空的: 在没有数据的时候我们应该怎么处理呢?有一个简单的方法可以解决问题,我们来看一下. ListView和其他继承自AdapterView的类可以使用setEmptyView(View view)方法设置空状态下的显示.当绘制AdapterView的适配器为空或者isEmpty方法返回true,此时就会显示setEmptyView(View vie

  • layer.prompt使文本框为空的情况下也能点击确定的方法

    最近一直在使用layui,但是用到弹出层layer.prompt时,如果文本框是空的话点击确定没有反应,不能向下执行. 但是我又需要空值,看看我原来的代码. layer.prompt({ formType: 0, value: '初始值', title: '请输入值', area: ['800px', '350px'] //自定义文本域宽高 }, function(value, index, elem){ alert(value); //得到value layer.close(index); }

  • 浅谈python3发送post请求参数为空的情况

    post请求的时候如果不带参数,其实作用就跟get请求一样.我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了. 在Python代码请求,如下: class HttpHelper(): def __init__(self): '''获取driver对象,和接口ip地址信息,里面的方法大家可以忽略,根据自己的情况来设置 ''' self.dr=Common.driver run_info=Common().get_current_run_conf

  • SpringBoot @Autowired注入为空的情况解读

    目录 @Autowired注入为空的情况解读 记录下 @Autowired注入bean找不到异常 异常描述 问题原因 总结 @Autowired注入为空的情况解读 因最近在开发中遇到了使用@Autowired注解 自动装配时,会报空指针,发现对象并没有装配进来,通过查询,总结了几种可能造成这种情况的原因. 记录下 1.最简单的一种情况,查看被装配的类,也就是@Autowired注解下的类是否添加了注解交给SpringBoot托管,@service等注解,或者是直接加上@Component注解.

  • Android ListView分页功能实现方法

    通过本次小Demo我学到了: 1.ListView的小小的一个分页功能 2.加深了对自定义控件的理解 3.对ListView的优化 4.对BaseAdapter的使用 5.自定义Adapter 6.接口的回调 要实现下面的效果--当拖动ListView到底部的时候,显示一个ProgressBar和一个"正在加载..."的TextView.并且过两秒钟后,在下面加载出新的数据.项目的目录结构和程序要实现的效果如下:   首先是布局部分: 我为了实现此效果,首先在布局文件中新建了一个foo

  • Spring Boot环境下Mybatis Plus的快速应用操作

    一.简介 Mybatis-Plus(简称MP)是一个 Mybatis 的一个增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生.其愿景是成为Mybatis最好的搭档,将开发效率翻倍,由于受到学习研究深入限制,本例只进行Mybatis Plus在Spring Boot环境下的基本应用(如Select.Insert.Update.Delete等基本操作,其中还包括动态生成组合查询与更新的动态SQL语句). 特性: 无侵入:Mybatis-Plus 在 Mybatis 的

  • C语言实题讲解快速掌握单链表下

    目录 1.移除链表元素 2.反转链表 3.链表的中间节点 4.链表中倒数第k个节点 5.合并两个有序链表 6.链表分割 1.移除链表元素 链接直达: 移除链表元素 题目: 思路: 此题要综合考虑多种情况,常规情况就如同示例1,有多个节点,并且val不连续,但是非常规呢?当val连续呢?当头部就是val呢?所以要分类讨论 常规情况: 需要定义两个指针prev和cur,cur指向第一个数据,prev指向cur的前一个.依次遍历cur指向的数据是否为val,若是,则把prev的下一个节点指向cur的下

  • C语言实题讲解快速掌握单链表上

    目录 1.移除链表元素 2.反转链表 3.链表的中间节点 4.链表中倒数第k个节点 5.合并两个有序链表 6.链表分割 1.移除链表元素 链接直达: 移除链表元素 题目: 思路: 此题要综合考虑多种情况,常规情况就如同示例1,有多个节点,并且val不连续,但是非常规呢?当val连续呢?当头部就是val呢?所以要分类讨论 常规情况: 需要定义两个指针prev和cur,cur指向第一个数据,prev指向cur的前一个.依次遍历cur指向的数据是否为val,若是,则把prev的下一个节点指向cur的下

  • 关于Mysql5.7及8.0版本索引失效情况汇总

    目录 一个独立索引 多个独立索引 总结 TIPS: 没有特殊说明,测试环境均为MySQL8.0,早期版本可能会有更多情况导致索引失效.8.0失效的情况,早期版本也失效:8.0不失效的情况,早期版本可能失效. 所有测试默认不考虑表为空的情况,特殊情况文中会有说明. 本文只介绍Innodb引擎下的索引失效情况. -- 创建测试表 DROP TABLE IF EXISTS `test_idx`; CREATE TABLE `test_idx` ( `id` int(11) NOT NULL AUTO_

  • iOS实现UITableView数据为空时的提示页面

    前言 相信对于iOS开发者们来说,在开发过程中,经常用UITableView,一定会遇到数据为空的情况,这时需要在空页面上放一个图片和一行文字提示数据为空,下面整理了两种方法来实现这个功能. 第一个是继承UITableView,在新类中集成图片和文字 #import <UIKit/UIKit.h> #import "Const.h" @interface WFEmptyTableView : UITableView @property (nonatomic, assign)

随机推荐