package com.d3.d3xmpp.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import com.d3.d3xmpp.R; import com.d3.d3xmpp.constant.Constants; import com.d3.d3xmpp.constant.ImgConfig; import com.d3.d3xmpp.d3View.expression.ExpressionUtil; import com.d3.d3xmpp.dao.NewMsgDbHelper; import com.d3.d3xmpp.model.ChatItem; import com.d3.d3xmpp.util.CircularImage; import com.d3.d3xmpp.util.StringUtil; public class MsgAdapter extends ArrayAdapter<ChatItem> { private Context cxt; private NewMsgDbHelper newMsgDbHelper ; public MsgAdapter(Context context) { super(context, 0); this.cxt = context; newMsgDbHelper = NewMsgDbHelper.getInstance(cxt); } public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(cxt).inflate(R.layout.row_msg, null); holder = new ViewHolder(); holder.headImg = (CircularImage) convertView.findViewById(R.id.headImg); holder.nickView = (TextView) convertView.findViewById(R.id.nickView); holder.msgView = (TextView) convertView.findViewById(R.id.msgView); holder.countView = (TextView) convertView.findViewById(R.id.countView); holder.dateView = (TextView) convertView.findViewById(R.id.dateView); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } ChatItem item = getItem(position); // //��ͼƬ���߱��������滻 if (item.msg!=null) { if(item.msg.contains(Constants.SAVE_IMG_PATH)) holder.msgView.setText("[ͼƬ]"); else if(item.msg.contains(Constants.SAVE_SOUND_PATH)) holder.msgView.setText("[����]"); else if(item.msg.contains("[/g0")) holder.msgView.setText("[��������]"); else if(item.msg.contains("[/f0")) //������� holder.msgView.setText(ExpressionUtil.getText(cxt, StringUtil.Unicode2GBK(item.msg))); else if(item.msg.contains("[/a0")) holder.msgView.setText("[λ��]"); else{ holder.msgView.setText(item.msg); } } holder.nickView.setText(item.chatName); holder.countView.setVisibility(View.GONE); holder.dateView.setText(item.sendDate); if (item.chatType == ChatItem.CHAT) { ImgConfig.showHeadImg(item.username, holder.headImg); } else{ holder.headImg.setImageResource(R.drawable.group_chat_icon); } //�Ƿ���ʾ����Ϣ int newCount = newMsgDbHelper.getMsgCount(item.chatName); if(newCount!=0){ holder.countView.setVisibility(View.VISIBLE); holder.countView.setText(""+newCount); } return convertView; } static class ViewHolder { CircularImage headImg; TextView nickView; TextView msgView; TextView countView; TextView dateView; } }