public View getView(int position, View convertView, ViewGroup parent) { 
        ViewHolder holder = null; 
        if (convertView == null) { 
                convertView = LayoutInflater.from(mContext).inflate(R.layout.program_favorite_list_item, null); 
                holder = new ViewHolder(); 
                holder.mText = (TextView) convertView.findViewById(R.id.program_favorite_edit_number); 
                holder.text = (TextView) convertView.findViewById(R.id.program_favorite_edit_data); 
                convertView.setTag(holder); 
}else { 
holder = (ViewHolder) convertView.getTag(); 
} 
            //tmpText.setText(mData.get(position).getChannelId()); 
        holder.mText.setText(String.valueOf(position+1)); 
        holder.text.setText(mData.get(position).getChannelName()); 
            return convertView; 
        }class ViewHolder{ 
                 TextView mtext; 
                 TextView text; 
} 
 
 
 if (convertView == null) { 
}else{ 
} //主要添加这个判断,具体原因我也不知道,应该可以用工具加判断和不加之间的对比可以得出结论。 
如果在android开发中遇到时候可以参考这个方法。 
 
 
由于在写这个方式时候遇到一个小问题,也主要自己对应用层的不太熟悉,所以才会犯低级的错误,当我想listview的的具体位置用textview显示出来时候我直接用holder.mText.setText(position);,很奇怪的是无法编译通过,然后通过查阅settext用法之后才明白,settext显示的是一个字符串,所以需要改为holder.mText.setText(String.valueOf(position+1));  或者 holder.mText.setText(position + “”); 
 
 
 
 
 |