概念
MVC框架:数据模型M(Model)存放数据,利用控制器C(Controller)将数据显示在视图V(View)上。(不懂请忽略)
View:View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。
启动一个Activity,然后我们想把一批数据(其中每一组数据展示在一个item里)展示在某个容器里。于是我们请来了画家adapter。
MVC框架:其中M是Data,V是每个item的View的集合,C是Adapter。
对于容器的每个item开始呈现或改变时,系统会通知与这个容器绑定的Adapter对象(画家),并告诉画家一些参数【 你在容器的哪个item里画(参数position),容器在哪个context里,容器在context的哪(parent),废弃的View(参数convertView),你需要呈现的数据(data)】。画家利用这些参数开启了GetView(绘画过程,最终交付完成的View)。在GetView过程中,一开始没有可以重新利用的View,画家就得自己造一个特定布局的View(未成品),然后对View中的一些组件属性进行修改,获得完成品View,然后交付。如果有可以重新利用的View,即converview,那就直接对convertview的组件进行修改即可。
某个item调用Adapter.getview()
getview 完成以下作业:
①通过LayoutInflater.from(context)生成一个可以访问XML文件的接口。
②通过LayoutInflater.from(context).inflate(R.layout.item, parent,false)创建一个具有R.layout.item布局的,且符合parent布局参数的Veiw。
③按照数据,更新这个View的各个组件(Textview,等等)
④返回这个View。
如果有可用的convertview,直接跳到第三歩。