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 + “”);
|