Android基础-自定义适配器
2013-10-14 19:47
225 查看
ArrayAdapter和SimpleAdapter无法满足很多要求,比如说这两种适配器无法对ListView中每一个item中的具体控件进行监听,也就是说这两种适配器只能对item进行监听,为此,我们需要另一种适配器来监听item中的控件,这类适配器叫做BaseAdapter,也是自定义适配器。
第一步:
需要新建一个类,来继承BaseAdapter,并重载BaseAdapter的方法,一般会重载四个方法,分别为getCount,getItem,getItemId和getView,其中getCount和getView是比较重要的,getCount是用来得到该ListView中到底有多少个条目,而getView是根据getCount得到的条目数来绘制ListView中的每一项。
第二步:
修改getCount方法和getView方法。getCount方法比较简单,返回ListView的长度就可以了。getView有三个参数,分别为int,View,ViewGroup类型,参数一是绘制的行数,参数二是绘制的视图(该ListView的每一项布局),参数三是View的合集。然后得到LayoutInflater对象,通过flater.inflate(R.layout.example,
null);方法得到View对象,对View对象进行findViewById操作得到每个控件类型,进行操作。
一下是BaseAdapter子类的代码:
第一步:
需要新建一个类,来继承BaseAdapter,并重载BaseAdapter的方法,一般会重载四个方法,分别为getCount,getItem,getItemId和getView,其中getCount和getView是比较重要的,getCount是用来得到该ListView中到底有多少个条目,而getView是根据getCount得到的条目数来绘制ListView中的每一项。
第二步:
修改getCount方法和getView方法。getCount方法比较简单,返回ListView的长度就可以了。getView有三个参数,分别为int,View,ViewGroup类型,参数一是绘制的行数,参数二是绘制的视图(该ListView的每一项布局),参数三是View的合集。然后得到LayoutInflater对象,通过flater.inflate(R.layout.example,
null);方法得到View对象,对View对象进行findViewById操作得到每个控件类型,进行操作。
一下是BaseAdapter子类的代码:
class MyAdapter extends BaseAdapter { private LayoutInflater inflater; private List<Map<String,Object>> data; private TextView largeText; private TextView smallText; private ImageView imageView; private List<View> holder; public MyAdapter(Context context,List<Map<String,Object>> data){ this.inflater = LayoutInflater.from(context); this.data = data; } public int getCount() { return data.size(); } public Object getItem(int arg0) { return data.get(arg0); } @Override public long getItemId(int arg0) { return arg0; } @Override public View getView(int p, View v, ViewGroup parent) { if(v == null){ v = inflater.inflate(R.layout.custom_list_view, null); largeText= (TextView)v.findViewById(R.id.large_text); smallText= (TextView)v.findViewById(R.id.small_text); imageView= (ImageView)v.findViewById(R.id.image); //至此,则与MainActivity中操作控件没有多大区别 }
相关文章推荐
- android-继承BaseAdapter自定义适配器基础
- Android自定义View基础(三)颜色
- Android自定义基础-Color
- Android学习ListView自定义布局,适配器BaseAdapter
- Android自定义View基础部分
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- Android之自定义实现BaseAdapter(通用适配器一)
- 【Android基础知识】ContentProvider(二)自定义ContentProvider和URI
- android学习之自定义适配器
- 在Android中自定义适配器
- Android自定义适配器父类继承BaseAdapter,自定义生成对话框工具类
- android 自定义View(一、基础认识)
- Android中自定义适配器BaseAdapter基本用法
- Android之自定义实现BaseAdapter(通用适配器一)
- android自定义View基础系列一(点击随机生成验证码效果)
- Android编写简单的手机通讯录,只是存到数据库里面,并没有显示出来,下次更新显示到自定义适配器的通讯录(这个只是教大家SQLite数据库如何使用)
- android 自定义view 基础(一)
- Android基础_常见Adapter/ExpandListView/Dialog/PopupWindow/自定义AlertDialog/单元测试/转移文件到SD卡(四)
- Android 自定义适配器ListView 实现打电话
- android自定义View基础系列一