Android App开发笔记之通用Adapter
在Android开发中,会比较多地使用列表布局,如ListView、GridView、Gallery、Spinner等。无论是ListView还是GridView,需使用Adapter提供数据,如简单性的ArrayAdapter,SimpleAdapter,SimpleCursorAdapter等。但实际开发中,Item布局较为复杂,因而较多使用的是BaseAdapter。
一般做法是不同的列表布局New一个不同的XXAdapter继承BaseAdapter,虽然可行,但这样会增加项目的代码量,使用起来也颇为麻烦。
有没有通用的BaseAdapter呢?当然有。
依不同的项目有不同的数据源,可自行定义BaseAdapter,如CommonBaseAdapter
根据选择的数据源类型,实现BaseAdapter里的方法:重载一个外部使用的方法以及BaseAdapter重写的方法getCount();getItem(int position);getItemId(int position)等,
其中,最重要的还是getView方法:
getView方法里有ViewHolder.getViewHolder()方法,具体实现为:
在ViewHolder这个类里,可以根据项目UI元素添加更多需要的方法,如设置TextView值,Button点击,View是否可见,ImageLoader工具的引用等等,如:
每个不同的方法需用到方法getView(int ViewID),ViewID为控件的id:
万事俱备,东风吹来,哪里需要adapter,哪里就new一个自定义的BaseAdapter( ...){...},实现里面的convert方法,如holder.setText(R.id.name, name)即可。
这样一来,你会发现使用BaseAdapter是如此的简单方便快捷,会赞不绝口~