Android自学总结(一)ListView(1)

本人并没有系统地学习Android开发,只是模仿着他人的代码做了一个简单到不能再简单的app。目前,想尽快收尾这个意义不大的app。稀巴烂的app不算什么,但其中不大的收获值得好好总结一下。相信如果能够有朝一日再去做一个,会比这个好吧。
ListView是Android的一个控件。
想使用ListView需要先在xml布局文件中进行定义。注意不要用ScrollView控件去套ListView控件。因为这样会使得滑动出现一定的问题。
ListView中有一个addHeaderView方法,可以在listview顶部添加广告栏(关于简单广告栏的制作,后期有机会会记录一下)。mListView.addHeaderView(view),view是一个View布局,可以调用inflate方法加载xml布局。这里需要注意,在ListView的xml布局中,需要设置一个stackFromBottom属性为false。否则初始化界面的时候在从最下面开始的。
还有就是最基本的:ListView需要一个自定义适配器与他适配。说是自定义,其实一般来说继承BaseAdapter类就可以了。因为继承了BaseAdapter类,所以重写那四个方法。相比之下前三个较为简单,分别是获取ListView中item的个数,获取ListView中的当前position的item以及返回当前item的position索引。第四个方法是重点,getView,创建视图控件。也就是将文字数据和图片数据加载到每个item的子布局中。这里有一种固定写法,为使得ListView在滚动的时候能够快速设置值,不必重复创建很多视图控件占用内存,创建ViewHolder类。将convertView的tag设置为ViewHolder。只要convertView不为空,就可以重新使用。
在自定义的Adapter类中,有一个成员变量是一个列表List,其元素类型是根据ListView中要加载的内容自定义的类。如做一个新闻展示界面,就要写一个新闻类,里面包括新闻标题,新闻内容,新闻图片id等。在这个新闻类中只需最基本的构造函数并重写getter和setter和toString方法即可。在编写主界面时,需启动一个线程用来从本地json文件或服务器的mySQL数据库中加载数据到这个List中,并在Adapter的构造器中,将这个list作为成员变量传入。在getView方法中,调用list的get方法获取到对应position位置的item要展示的那组信息。接着获取到xml的控件,调用setText方法可将这个list中对应的内容加载到对应的控件中。
最后,就是大功告成了。ListView.setAdapter(myAdapter);一个最最基本的listview就做出来了。

你可能感兴趣的:(android,ui,xml)