ListView设置EmptyView的方法

简介:

原文:http://blog.csdn.net/yuanzeyao2008/article/details/8153365

我们在使用ListView展示数据时,如何需要展示的数据集为空,那么就会显示一个黑屏,为了解决该问题,ListView有一个方法setEmptyView,当数据集为空时,就显示设置的这个界面。

现在分两种情况来分析这个问题:

如果你的Activity继承ListActivity:

这种情况相对简单,

定义非空时的xml

[html]  view plain copy print ?
  1. <LinearLayout  
  2.   xmlns:android="http://schemas.android.com/apk/res/android"  
  3.   android:orientation="vertical"  
  4.   android:layout_width="match_parent"  
  5.   android:layout_height="match_parent">  
  6.     
  7.     <ListView   
  8.        android:id="@android:id/list"  
  9.        android:layout_width="fill_parent"   
  10.        android:layout_height="fill_parent"   
  11.     ></ListView>  
  12.       
  13.     <ViewStub android:id="@android:id/empty"   
  14.            android:layout_width="fill_parent"   
  15.        android:layout_height="fill_parent"   
  16.             android:layout_gravity="center"   
  17.             android:layout="@layout/emptyview"   
  18.     />          
  19. </LinearLayout>  

定义emptyview.xml

[html]  view plain copy print ?
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="fill_parent"  
  3.     android:layout_height="fill_parent"  
  4.     android:orientation="vertical" >  
  5.     <Button android:id="@+id/btn_emptyview"  
  6.         android:layout_width="fill_parent"  
  7.         android:layout_height="fill_parent"  
  8.         android:text="EmptyView视图"  
  9.         android:textSize="20pt"  
  10.         />"  
  11.       
  12.   
  13. </LinearLayout>  


对于这种情况,只需要这两个xml就可以完成

 

如果使用普通的Activity完成

定义非空时的xml:

[html]  view plain copy print ?
  1. <LinearLayout  
  2.   xmlns:android="http://schemas.android.com/apk/res/android"  
  3.   android:orientation="vertical"  
  4.   android:layout_width="match_parent"  
  5.   android:layout_height="match_parent">  
  6.     
  7.     <ListView   
  8.         android:id="@+id/list"  
  9.         android:layout_width="fill_parent"   
  10.        android:layout_height="fill_parent"   
  11.     ></ListView>  
  12.       
  13.     <ViewStub android:id="@+id/empty"   
  14.        android:layout_width="fill_parent"   
  15.        android:layout_height="fill_parent"   
  16.        android:layout_gravity="center"   
  17.        android:layout="@layout/emptyview"   
  18.     />       
  19.       
  20.       
  21. </LinearLayout>  

定义空时的xml和上面一样

区别在于Actiivty中的代码

[java]  view plain copy print ?
  1. public class SecondActivity extends Activity  
  2. {  
  3.     //private static final String[]items={"A","N","C"};  
  4.     private static final String[]items={};  
  5.     private ListView list;  
  6.     @Override  
  7.     protected void onCreate(Bundle savedInstanceState)  
  8.     {  
  9.         // TODO Auto-generated method stub  
  10.         super.onCreate(savedInstanceState);  
  11.         this.setContentView(R.layout.noempty);  
  12.         ArrayAdapter<String>adaptr=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items);  
  13.         list=(ListView)this.findViewById(R.id.list);  
  14.         list.setAdapter(adaptr);  
  15.         ViewStub mViewStub = (ViewStub)findViewById(R.id.empty);    
  16.   
  17.         list.setEmptyView(mViewStub);            
  18.   
  19.     }  
  20. }  

相关文章
RecycleView的操作(自定义SnapHelper、ItemDecoration)
RecycleView的操作(自定义SnapHelper、ItemDecoration)
221 0
|
Android开发
Android自定义ListView和GridView解决滑动冲突和显示不全
Android自定义ListView和GridView解决滑动冲突和显示不全
140 0
|
XML 数据格式
ListView设置EmptyView之后不显示
在代码里简单设置里一下emptyView后发现根本不显示
129 0
|
Android开发 数据格式 XML
ListView自动滚到最后一条
1.listview xml里面加上 android.transcriptmode=alwaysScroll android:stackFromBottom="true"//此种情况 每次数据更新状态都会滚到最后一条 到顶部 ``` if (!listview.
641 0
(转)解决ScrollView嵌套ListView或者GridView导致只显示一行的方法
即动态获取ListView和GridView的高度 一、对于ListView ListView listview= new ListView(this); setListViewHeightBasedOnChildren(listview);即可 1 public static voi...
1030 0
|
Android开发 数据格式 XML
Android学习自定义View(四)——继承控件(滑动时ListView的Item出现删除按钮)
MainActivity如下: package cc.testviewstudy4; import java.util.ArrayList; import java.
958 0