@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = layoutInflater.inflate(res, null); holder.avatar = (ImageView) convertView.findViewById(R.id.avatar); holder.unreadMsgView = (TextView) convertView.findViewById(R.id.unread_msg_number); holder.nameTextview = (TextView) convertView.findViewById(R.id.name); holder.tvHeader = (TextView) convertView.findViewById(R.id.header); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } User user = getItem(position); if (user == null) Log.d("ContactAdapter", position + ""); // 设置nick,demo里不涉及到完整user,用username代替nick显示 String username = user.getUsername(); String header = user.getHeader(); if (position == 0 || header != null && !header.equals(getItem(position - 1).getHeader())) { if (TextUtils.isEmpty(header)) { holder.tvHeader.setVisibility(View.GONE); } else { holder.tvHeader.setVisibility(View.VISIBLE); holder.tvHeader.setText(header); } } else { holder.tvHeader.setVisibility(View.GONE); } // 显示申请与通知item if (username.equals(Constant.NEW_FRIENDS_USERNAME)) { holder.nameTextview.setText(user.getNick()); holder.avatar.setImageResource(R.drawable.new_friends_icon); if (user.getUnreadMsgCount() > 0) { holder.unreadMsgView.setVisibility(View.VISIBLE); // holder.unreadMsgView.setText(user.getUnreadMsgCount()+""); } else { holder.unreadMsgView.setVisibility(View.INVISIBLE); } } else if (username.equals(Constant.GROUP_USERNAME)) { // 群聊item holder.nameTextview.setText(user.getNick()); holder.avatar.setImageResource(R.drawable.groups_icon); } else if (username.equals(Constant.CHAT_ROOM)) { // 群聊item holder.nameTextview.setText(user.getNick()); holder.avatar.setImageResource(R.drawable.groups_icon); } else if (username.equals(Constant.CHAT_ROBOT)) { // Robot item holder.nameTextview.setText(user.getNick()); holder.avatar.setImageResource(R.drawable.groups_icon); } else { holder.nameTextview.setText(username); // 设置用户头像 UserUtils.setUserAvatar(getContext(), username, holder.avatar); if (holder.unreadMsgView != null) holder.unreadMsgView.setVisibility(View.INVISIBLE); } return convertView; }