Android中的列表控件非常灵活,可以自定义每一个列表项,实际上每一个列表项就是一个View,在android定义了3个列表控件
:ListView、ExpandableListView和Spinner,其中Spinner就是在Windows中常见的下拉列表框。
ListView控件用于列表的形式显示数据,ListView控件采用MVC模式将前端显示和后端数据进行分离。
也就是说,ListView控件在装在数据时并不是直接使用ListView.add或者类似的方法添加数据,
而是指定一个Adapter对象。该对象相当于MVC模式中的C(控制器,Controller)。
ListView相当于MVC模式中的V(视图,View),用于显示数据。为ListView提供数据的List或数组相当于MVC模式 中的M(模型,Model)
在ListView控件中通过Adapter对象获得需要显示的数据,在创建Adapter对象时需要指定要显示的数据(List或者数据对象),
因此,要显示的数据与ListView之间通过Adapter对象进行连接,同时又互相独立,
也就是说,ListView只知道显示的数据来自Adapter,并不知道这些数据来自List还是数组。
对于数据本身来说,只是知道将这些数据添加到Adapter对象中,并不知道这些数据会被用于ListView控件或其他控。
如下图: