【Android】以BaseAdapter做适配器的ListView及其性能优化
适配器的Java类
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubSystem.out.println("正在渲染第"+position+"行 +++ "+ i++);OneView oneView;if (convertView == null) {convertView = mInflater.inflate(R.layout.item_weixin, null);//根据布局文件实例化viewoneView = new OneView();oneView.title = (TextView) convertView.findViewById(R.id.title);//找某个控件oneView.time = (TextView) convertView.findViewById(R.id.time);oneView.info = (TextView) convertView.findViewById(R.id.info);oneView.img = (ImageView) convertView.findViewById(R.id.img);convertView.setTag(oneView);//把View和某个对象关联起来} else {oneView = (OneView) convertView.getTag();}JSONObject jObject = null;try {jObject = list.getJSONObject(position);//根据position获取集合类中某行数据oneView.title.setText(jObject.get("title").toString());//给该控件设置数据(数据从集合类中来)oneView.time.setText(jObject.get("time").toString());oneView.info.setText(jObject.get("info").toString());oneView.img.setBackgroundResource((Integer)jObject.get("img"));} catch (Exception e) {// TODO: handle exception}return convertView;}/** 把每行布局文件的各个控件包装成一个对象 */private class OneView{TextView title;TextView time;TextView info;ImageView img;}