class MyAdapter extends BaseAdapter {
//返回要显示的条目的数量
@Override
public int getCount() {
return list.size();
}
//获取条目
@Override
public Object getItem(int position) {
return list.get(position);
}
//获取条目的id
@Override
public long getItemId(int position) {
return 0;
}
//返回一个view对象,会作为listView的一个条目显示在界面上
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = null;
ViewHolder mHolder = null;
if (convertView == null) { //如果缓存为空,则重新填充布局文件
v = View.inflate(AddMerryActivity.this, R.layout.list_item_merry, null); //采用填充的方式
//创建ViewHolder,封装所有条目使用的组件
mHolder = new ViewHolder();
mHolder.tv_time = (TextView) v.findViewById(R.id.time_merry); //时间
mHolder.tv_content = (EditText) v.findViewById(R.id.content_merry); //内容
// mHolder.siv = (SmartImageView) v.findViewById(R.id.head_merry); //头像
//将ViewHolder封装至View对象中,这样View被缓存时,ViewHolder也被缓存了
v.setTag(mHolder); //设置一个标签,将一个对象存到View中,是一个Object类型
} else { //如果缓存不为空,直接调用缓存
v = convertView; //convertView 缓存的条目
//从View中取出保存的ViewHolder,ViewHolder中就有所有组件对象,不需要再去findViewById
mHolder = (ViewHolder) v.getTag();
}
// 改变每个条目显示的内容,找到布局文件中对应的组件
mHolder.tv_time.setText(textTime.getText().toString());
mHolder.tv_content.setText(editContent.getText().toString());
// mHolder.siv.setImageUrl("head_portrait");
return v;
}
}
//把条目需要使用到的所有组件封装到这个类中
class ViewHolder {
TextView tv_time;
EditText tv_content;
// SmartImageView siv;
}