ListView以及其他继承自AdapterView的类可以通过setEmptyView(View)方法很简单地处理空状态。当需要绘制AdapterView时,如果适配器为null或者适配器的isEmpty()方法返回true,此时会显示setEmptyView(View)方法所设置的视图。
示例代码如下:
layout/activity_main.xml:
<?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"
android:orientation="vertical" >
<ListView
android:id="@+id/main_listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<ImageView
android:id="@+id/main_emptyView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/empty_view" />
</FrameLayout>
MainActivity.java:
public class MainActivity extends Activity {
private ListView mListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = (ListView) findViewById(R.id.main_listView);
mListView.setEmptyView(findViewById(R.id.main_emptyView));
}
}