ListView

来源:互联网 发布:软件行为分析工具 编辑:程序博客网 时间:2024/06/05 16:49

ListView的使用很简单。
1.在布局文件中添加ListView
2.在Activity onCreate 方法中通过findViewById获得ListView实例
3.生成一个listAdapter的子类,包括其中的数据
4.调用ListView的setAdapter方法,绑定ListView和刚生成的Adapter
OK,这样就可以了

原理上ListView封装了UI的布局实现,Adapter封装了数据,并提供接口负责ListView的每一项如何和一条数据绑定.这个接口就是getView。

动态ListView的实现,也很简单,在数据发生变化之后,调用Adapter的notifyDataSetChanged方法即可。

注意点
有的时候ListView中的每一项不是简单的TextView或者其他既有控件,
而是我们自己定义的个性化布局,此时我们一般定义好布局的layout文件,
然后在getView中通过LayoutInflater解析布局文件,获得布局的实例,这个接口有4个
public View inflate (int resource, ViewGroup root)
public View inflate (XmlPullParser parser, ViewGroup root)
public View inflate (XmlPullParser parser, ViewGroup root, boolean attachToRoot)
public View inflate (int resource, ViewGroup root, boolean attachToRoot)

如果root非空, 我们必须使用最后2个接口,并且attachToRoot设置为false
提供root是为了继承root的一些布局属性,如果不需要,root设置为null,调用前两个接口即可.

如果root非空,而attachToRoot又为true,LayoutInflater会调用root的addView方法,而AdapterView不支持addView,就会报错
public void addView(View child) {
    throw new UnsupportedOperationException("addView(View) is not supported in AdapterView");

}

下面是个小的例子




0 0