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

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

CommonAdapter 类

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;
    }

}

相关文章: