谁给讲一下  这会迷糊了
public class viewHolder {
        private TextView tv_ohter_week, tv_ohter_temperature;
        private ImageView iv_other_weather;
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        inflater = LayoutInflater.from(context);
        viewHolder holder;
        if (convertView == null) {
            holder = new viewHolder();
            convertView = inflater.inflate(R.layout.wether_row_layout, null);
            holder.iv_other_weather = (ImageView) convertView
                    .findViewById(R.id.iv_other_weather);
            holder.tv_ohter_temperature = (TextView) convertView
                    .findViewById(R.id.tv_ohter_temperature);
            holder.tv_ohter_week = (TextView) convertView
                    .findViewById(R.id.tv_ohter_week);
            convertView.setTag(holder);
        } else {
            holder = (viewHolder) convertView.getTag();
        }
        WeatherMdoel model = (WeatherMdoel) getItem(position + 1);
        holder.iv_other_weather
                .setImageDrawable(model.getImageUrl() == "" ? model
                        .getImageDrawable() : strHelpeUtil.loadImage(model
                        .getImageUrl()));
        holder.tv_ohter_temperature.setText(context.getResources().getString(
                R.string.temp_format, model.getLowTemp(), model.getHighTemp()));
        holder.tv_ohter_week.setText(model.getWeek());        return convertView;
    }    
    

解决方案 »

  1.   

    首先通过  if (convertView == null) 判断convertView是不是null。因为listview重用机制convertView很对情况下不为null。
    如果convertView是null,用layoutinflat指定布局文件填充生成此convertView。然后绑定viewholder。之所以要绑定viewholder是为了节省资源。免得即使convertView不为空也每次都要重新把所有组件加载一遍。拿到convertView及对应的viewholder后,后面就是设值了。
      

  2.   

    这不是吧xml里面定义的layout实现为一个view吗?
      

  3.   

    这是一个listView 中实现单个view的代码。