android 学习笔记:自定义通用ListView/GridView,实现ListAdapter 类

分享到:

android 学习中发现经常血药用到ListView,而且还需要自定义View显示,实现ListAdapter interface

于是写了一个通用的CommonAdapter 类,简化ListAdapter 的实现.把Adaapter 需要根据layout 动态实现的部分提取出来.做成接口.静态部分做成通用方法,以后开发就可以只关注layout 部分的绑定.简化开发.

CommonAdapter 类

View Code public class CommonAdapter extends BaseAdapter {

    private int customXmlName;
    protected ViewHolderModel Holder = null;
    protected final List<Map<String, Object>> list;
    private final Context context;

    /*
     * 构造函数设置Context 和 数据源
     */
    public CommonAdapter(ViewHolderModel vModel) {

        customXmlName = com.gzh.search.R.layout.list_item;
        this.context = vModel.context;
        this.list = vModel.list;
        this.Holder = vModel;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    public void setLayout_Name(int name) {
        if (name <= 0) {
            return;
        }
        customXmlName = name;
    }

    @Override
    public Object getItem(int position) {
        if (position < list.size()) {
            return list.get(position);
        } else {

            return null;
        }
    }

    @Override
    public long getItemId(int position) {

        return position;
    }

    public void HolderModel(ViewHolderModel vModel) {
        this.Holder = vModel;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(customXmlName,
                    null);
            Holder.InitViewHoler(convertView);
            convertView.setTag(Holder);

        } else {
            Holder = (ViewHolderModel) convertView.getTag();
        }
        Holder.SetViewHolerValues(convertView, position);
        return convertView;
    }

}
昵    称:
验证码:

相关文档: