您的位置:首页 > 移动开发 > Android开发

Android ListView,GridView的Adapter封装

2016-08-23 17:20 459 查看
这是一个对ListView,GridView Adapter 的 封装,

项目 地址: 点击打开链接

在 Android中 如果使用到了 ListView 或GridView 一定要 给其 添加 适配器Adapter

但 每次 写对应的 适配器时,其中很多方法都是 重复的 ,
所以我这个demo 将其封装了起来,使用的时候,只需继承 我封装的类,然后绑定 数据 就可以了

因为 每次使用Adapter的 时候 数据类型可能不同 ,所以 封装类 用到了泛型 并继承BaseAdapter

然后在 getView中如下:

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder viewHolder = null;
if (view == null) {
view = LayoutInflater.from(context).inflate(layoutId, null);
viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
// 调用 绑定 数据 方法
bindDatas(i, dataList.get(i), viewHolder);
return view;
}

// 用于 设置 每一个 条目 显示 的 数据
abstract void bindDatas(int position, T t, ViewHolder viewHolder);

其中有一个 子类 用于 操作 保存 每个Item的 控件
/**
* 通过 控件id 得到 listView item中 的 控件
*
* @param viewId
* @return View
*/
public View getView(int viewId) {
if (viewMap.get(viewId) == null) {
View viewById = viewGroup.findViewById(viewId);
viewMap.put(viewId, viewById);
}
return viewMap.get(viewId);
}

/**
* 获得 listView 每个 条目 的 父View
*
* @return
*/
public View getViewGroup() {
return viewGroup;
}

项目 地址: 点击打开链接

项目 地址: 点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐