如何处理listView是空的情况
在这种的情况下,有什么是我们需要注意的呢?
首先,我们用到的方法是 listView.setEmptyView(View v)
从类的继承角度而言 ListView -> AbsListView -> AdapterView<T>
setEmptyView(View emptyView) 在 AdapterView类中找到
使用的时候,需要定义在同一布局内,代码新建的控件是无法在在setEmptyView中使用。
从集成的方法而言,只要是父类 是 AdapterView 都可以使用 setEmptyView 这个布局为空的函数。
下面是布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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/listview"
android:layout_width="wrap_content"
android:layout_height="155dp" >
</ListView>
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher" />
</LinearLayout>
下面的是代码
public class Test8 extends Activity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.test8);
listView = (ListView) findViewById(R.id.listview);
listView.setEmptyView(findViewById(R.id.imageview));
List<String> list = new ArrayList<String>();
// list.add("1");
// list.add("2");
// list.add("3");
// list.add("4");
// list.add("5");
// list.add("6");
// list.add("7");
listView.setAdapter(new Test8_Adapter(list, getApplicationContext()));
}
}
知识点
适配器为空的情况。
预览:
这个是listview的适配器不为空的情况
预览:
Tag
多点阅读,多点了解。 从上面的情况可以知道,甚至可以拓展,当读取网络数据显示在listview的时候,如果找不到数据,可以用这个来显示,提高界面的友好性。