ListView优化有关问题,求解

ListView优化问题,求解
在网上看到一种普遍优化就是在getView那里自定义一个ViewHolder。。。具体代码如下:
  public View getView(int position, View convertView, ViewGroup parent) {                           ViewHolder holder = null;             if (convertView == null) {                                   holder=new ViewHolder();                                     convertView = mInflater.inflate(R.layout.vlist2, null);                 holder.img = (ImageView)convertView.findViewById(R.id.img);                 holder.title = (TextView)convertView.findViewById(R.id.title);                 holder.info = (TextView)convertView.findViewById(R.id.info);                 holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn);                 convertView.setTag(holder);                               }else {                                   holder = (ViewHolder)convertView.getTag();             }                                         holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));             holder.title.setText((String)mData.get(position).get("title"));             holder.info.setText((String)mData.get(position).get("info"));                           holder.viewBtn.setOnClickListener(new View.OnClickListener() {                                   @Override                public void onClick(View v) {                     showInfo();                                  }             }); 



但是我发现打印那个convertView出来的话,每次都是null的,也就是说每次都会是null,那优化何在呢?求解