Android里的Adapter到底起什么作用阿。。为什么给ListView设置内容的时候必须是给予一个Adapter呢,而不是ArrayList<string>直接给予呢?
因为就看到的东西来说,就是一个ListView加上文字而已,这边引入Adapter是为了什么呢??
还有,Android有没有比较详细的像MSDN一样的对每个类的接口,函数和返回值都有说明的东西呢?
------解决方案--------------------
Adataper,顾名思义,适配器的意思,就是将需要使用的数据放入适配器,ListView连接适配器,使用适配器里的数据!
为什么使用Adapter,而不直接使用ArrayList<String>?
应该有两个方面的考虑:
一,ArrayList<String>里的每一项都只能有一种类型,赋给ListView时,每一个view里也只有一种数据类型,而如果在适配器中,如果想每个view里显示图片,名字等多个类型,适配器就是最好的选择!
二,内存的消耗吧!具体要深入了解Adapter学习!
Android有没有比较详细的像MSDN一样的对每个类的接口,函数和返回值都有说明的东西呢?
这个肯定有的啊!android-sdk-windows目录下有个docs文件夹,进入该文件夹,有个index.html的静态网页,就是帮助文档!打开以后,在菜单栏上有个 Reference 里面就是所有函数或接口的说明啦!
不过是英文的哦!呵呵呵....
------解决方案--------------------
Adapter从字面意思看,就是适配器意思,也就在数据源与UI层之间需要一个中间层去适配。但有人说为什么不在ListView直接赋上数据源呢,如果您不想使用ListView的Adapter功能,那么您完全可以通过LinearLayout动态添加一些控件,同样可以实现ListView的效果。但ListView为什么要使用Adapter, 其实很简单,就是对ListView扩充了功能和提高了性能:
功能:通过Adapter适配数据源,可以对ListView的数据进行过滤显示(我们经常看到的通讯录里面就有过滤 功能)
性能:当一个ListView重画时,Adapter提供的功能只画界面显示的区域,如果一ListView的项比较多,如1K条,使用Adapter提供的getView方法 大大提高了UI响应速度。Adapater提供的notifyDataSetInvalidated ,notifyDataInvalidated方法,当数据源更改时,ListView可以动态更改。如果没有使用Adapter,更新数据源后您的ListView如何更新呢,这是一个很值得LZ思考的问题
------解决方案--------------------
是不是这样理解的
图片、文字这样的数据 本来是 不符合传到ListView、GridView上面去显示需要的规格的
但是这些数据通过适配适配器,就可以适配到ListView、GridView上、
就好像看到的例子“大插头适配适配器转换为小插头,这样就可以插到小插座上面一样”