android 适配器 simpleadapter 和 baseadapter
设计网络程序或者数据处理显示程序的时候,常常会使用 simpleadapter 和baseadapter 来实现。 adapter 是适配器模式,是数据和界面之间的桥梁。baseadapter 是一个抽象的类,要使用必需为其定义子类并实现相关方法。simpleadapter 派生于 baseadapter ,已经实现了相关的方法,所以可以直接使用。二者在使用效果上没有太大的区别,两者可以设计出几乎一模一样的界面。但在使用方法上, baseadapter 需要创建一个派生于该类的子类,并实现父类的一些方法,他可以根据我们界面和数据的需要自由的定制。 simpleadapter 可以直接使用,但该适配器使用的数据结构是 HashMap ,这意味着,如果需要操作的数据对象结构过于复杂时,比如成员很多,成员内容不是基本类型等情况时,需要写相关的转化代码,这会便利程序的效率和可维护性变差 。有时,我们会面临使用哪种适配器的问题。如果数据结构很简单,操作的数据对象成员很少,没有非基本类型的数据成员,只是做为简单的展示,那么 simpleadapter 是很好的选择,简捷高效快速。如果成员很多,成员中包含复杂的对象,如 Button , darwable 等,使用baseadapter 会让代码变得简捷效率。
http://www.tuicool.com/articles/fmQfMr
区别在于SimpleAdapter的数据源是List<?Map<String,?> >,即HashMap的值必须要是简单类型,否则要进行复杂的转换。