首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

ListView设立EmptyView的方法

2012-11-22 
ListView设置EmptyView的方法我们在使用ListView展示数据时,如何需要展示的数据集为空,那么就会显示一个黑

ListView设置EmptyView的方法

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

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

如果你的Activity继承ListActivity:

这种情况相对简单,

定义非空时的xml

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="match_parent"  android:layout_height="match_parent">  <ListView    android:id="@android:id/list"   android:layout_width="fill_parent"    android:layout_height="fill_parent" ></ListView><ViewStub android:id="@android:id/empty"           android:layout_width="fill_parent"    android:layout_height="fill_parent"             android:layout_gravity="center"             android:layout="@layout/emptyview" />        </LinearLayout>

定义emptyview.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <Button android:id="@+id/btn_emptyview"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:text="EmptyView视图"        android:textSize="20pt"        />"    </LinearLayout>


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

 

如果使用普通的Activity完成

定义非空时的xml:

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="match_parent"  android:layout_height="match_parent">  <ListView android:id="@+id/list"android:layout_width="fill_parent"    android:layout_height="fill_parent" ></ListView><ViewStub android:id="@+id/empty"        android:layout_width="fill_parent"    android:layout_height="fill_parent"        android:layout_gravity="center"        android:layout="@layout/emptyview" />         </LinearLayout>

定义空时的xml和上面一样

区别在于Actiivty中的代码

public class SecondActivity extends Activity{//private static final String[]items={"A","N","C"};private static final String[]items={};private ListView list;@Overrideprotected void onCreate(Bundle savedInstanceState){// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.setContentView(R.layout.noempty);ArrayAdapter<String>adaptr=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items);list=(ListView)this.findViewById(R.id.list);list.setAdapter(adaptr);ViewStub mViewStub = (ViewStub)findViewById(R.id.empty);      list.setEmptyView(mViewStub);          }}


 


 

热点排行