不能使用listview控件 步骤里 getView() 里面 View 缓存。

不能使用listview控件 方法里 getView() 里面 View 缓存。。。
我在getview 里面  写了类似与 qq 聊天 界面左右显示 使用到 四个 view 界 面,使用缓存就null报错,不使用都正常,最好可以远程看看 qq:815107057,
public class MessageAdapter extends BaseAdapter {

	Context context;
	private List<Mes> MessageLists;
	private LayoutInflater inflater;

	public MessageAdapter(Context context, List<Mes> MessageLists) {
		this.context = context;
		this.MessageLists = MessageLists;
		inflater = LayoutInflater.from(context);
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return MessageLists.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return MessageLists.get(position);
	}

	static final int LEFT_TEXT =100;

	static final int RIGHT_TEXT = 1;
	static final int RIGHT_VI = 2;
	static final int RIGHT_POTO = 3;

	@Override
	public int getItemViewType(int position) {
		Mes message = (Mes) getItem(position);
		if (message.getBelong().equals("1")) { //判断左边 还是 右边
			return LEFT_TEXT;
		} else{
			int s = Integer.valueOf(message.getClas());
			switch(s){
			case RIGHT_TEXT:
				return RIGHT_TEXT;
			case RIGHT_VI:
				return RIGHT_VI;
			case RIGHT_POTO:
				return RIGHT_POTO;
			}
		}
		return 1000000000;

	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		Holder holder = null;
	//	if (convertView == null) {
			holder = new Holder();
			switch (getItemViewType(position)) {
			case LEFT_TEXT:
				convertView = inflater.inflate(R.layout.left_message_font, null);
				holder.left_tv_mescon = (TextView) convertView.findViewById(R.id.left_txt_message);
				break;

			case RIGHT_TEXT:
				convertView = inflater.inflate(R.layout.right_message_item_font, null);
				holder.right_tv_mescon = (TextView) convertView.findViewById(R.id.right_txt_message);
				break;

			case RIGHT_VI:
				convertView = inflater.inflate(R.layout.right_message_item_vi,null);
				
				break;
			case RIGHT_POTO:
				convertView = inflater.inflate(R.layout.right_message_item_poto, null);
				
				break;
			}
	//		convertView.setTag(holder);
	//	} else {
	//		holder = (Holder) convertView.getTag();
	//	}
		final Mes message = (Mes) getItem(position);
		switch (getItemViewType(position)) {

	 	case LEFT_TEXT:
			holder.left_tv_mescon.setText(message.getMes());
			/*
			  去掉添加数据代码
			 */
			break;
		case RIGHT_TEXT:
			 holder.right_tv_mescon.setText(message.getMes());
			/*
			/*
			  去掉添加数据代码
			 */
			break;
		case RIGHT_VI:
			/*
			/*
			  去掉添加数据代码
			 */
			break;
		case RIGHT_POTO:
			/*
			  去掉添加数据代码
			 */
			break;
		}
		return convertView;
	}
	class Holder {
		// left font
		public TextView left_tv_mescon;
		// right font
		public TextView right_tv_mescon;

		// right vi
		public TextView right_tv_chatcontent;

		// right poto
	}

}