快速处理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为空的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

时间: 2024-09-21 00:32:35

快速处理ListView为空的情况的相关文章

listview间歇加载情况下性能的保持问题

问题描述 listview间歇加载情况下性能的保持问题 listview间歇加载情况下性能的保持问题,怎么让窗体间歇加载数据并排序的时候,保持listview不会出现卡顿和闪烁? 解决方案 异步排序,排好序再刷新列表 解决方案二: 可以用一个数组集合缓存数据,定时再把数据添加到listview上

关于线程内创建socket create函数返回空的情况。。。。

问题描述 关于线程内创建socket create函数返回空的情况.... 解决方案 你只是new了一个CSocket,m_hSocket有值了,但是没有看到你代码里有create的调用,create创建的代码写在哪里?

求一正则表达式,望高手们指点;就是说我想找HTML标签中(其中vfd:button是我的自定义标签库),为了适应以前的页面(页面中在在URL为空的情况 URL)

问题描述 我想匹配下面的格式:<vfd:buttonid="ID834E4EFA953942259351D6D04E006A24"class="tbbutton"Paramater=""ErrorMsg="数据类型错误或未填写完整!"DialogWidth="800"DialogTop="20"DialogLeft="20"DialogHeight="

listview为空时,显示字符串

使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,一般情况下,如果你是继承ListActivity,只要 <ListView android:id="@id/android:list".../> <TextView android:id="@id/android:empty.../> 当列表为空时就会自动显示TextView  但是,如果继承Activity的话,想出现上面的效果,就需要手动

ListView 使用overscroll的情况下 消除mEdgeGlowTop 和 mEdgeGlowBottom

转载请注明出处http://blog.csdn.net/pkxiuluo01/article/details/17415427 首先给个链接:如何2.3之后如何添加listview 的overscroll(边界回弹)效果,http://blog.csdn.net/androiddevelop/article/details/8155350 正文: android  2.3 ListView引入   overscroll 的相关api 之后  添加了一个自带的效果 也就是 当滑动到边界的时候,如果

SQL疑难杂症【5 】大量数据查询的时候要考虑结果为空的情况

最近几天怪事儿出奇的多,同一个工单.同一个产品,在A线可以正常生产,但是在H线死活都无法生产,系统直接提示TimeOut,监控发现有一条SQL语句执行缓慢,Copy出来仔细查看,很简单的一条语句,如下: SELECT TOP 1 LOT_ID FROM QS_WIP(NOLOCK) WHERE STATION_ID='FB808A1E-5758-43B3-B243-8C728ACC5264' AND ROUTE_STEP_ID='29F813DC-2204-4413-9FB6-0DBF1982F

MySQL复制(2) 主备库都为空的情况下创建主备复制

本文适用于新安装的主库和备库,假定主备库为空,如果你是从已存在的主库复制,请转到<[MySQL] 复制(3)- 创建主备复制(从另一个服务器开始复制)> 主库的配置 主库需要打开二进制日志,并制定一个唯一的server id,my.cnf文件中增加或修改如下内容: server_id=60 log-bin = /data/mysql/log/mysql-bin 备库的配置 备库my.cnf的配置如下: server_id=61 read_only=1 log_bin = /data/mysql

win8系统如何快速查看硬件资源和带宽使用情况

硬件资源直接影响着软件的相应和电脑使用的流畅度,带宽资源更是浏览网页速度的第一要素.当电脑卡,或者网络响应慢的时候,比如win7 64位旗舰版那样,我们可以通过系统自带的工具进行查看.分析,并禁止多余的进程,保护硬件资源和网络带宽资源. 1.点击"CTRL+ALT+DEL"打开系统的资源管理,接着点击[性能],如图单机地下的打开资源监视器. 2.接着就可以看到cpu,内存,磁盘,和网络等这些选项,这里就可以看到各方面的硬件资源和网络使用使用情况了.可以判断哪些软件进程使用了哪些硬件资源

ORACLE使用GV_$TEMP_SPACE_HEADER统计临时表空使用情况不准确的问题

以前写了一篇ORACLE临时表空间总结的文章, 里面介绍了几个查看临时表空间使用情况的脚本,其中一个脚本如下所示:   SELECT TU.TABLESPACE_NAME                                    AS "TABLESPACE_NAME",        TT.TOTAL - TU.USED                                    AS "FREE(G)",        TT.TOTAL