不能使用listview控件 步骤里 getView() 里面 View 缓存。
不能使用listview控件 方法里 getView() 里面 View 缓存。。。
我在getview 里面 写了类似与 qq 聊天 界面左右显示 使用到 四个 view 界 面,使用缓存就null报错,不使用都正常,最好可以远程看看 qq:815107057,
我在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 } }