80,351
社区成员
发帖
与我相关
我的任务
分享
public View getView(int position, View convertView, ViewGroup parent){
MessageBean mb = mbList.get(position);
ViewHolder holder = null;
View convertView1,convertView2;
if(mb.getType().equalsIgnoreCase("1")){
convertView1 = convertView;
if(convertView1 == null){
convertView1 = vi.inflate(R.layout.list_say_me_item, null);
holder=new ViewHolder();
holder.tvTime = (TextView) convertView1.findViewById(R.id.tv_sendtime);
holder.tvText = (TextView) convertView1.findViewById(R.id.messagedetail_row_text);
holder.layout = (LinearLayout) convertView1.findViewById(R.id.layout_bj);
convertView1.setTag(holder);
}else{
holder = (ViewHolder) convertView1.getTag();
}
convertView = convertView1;
}else if(mb.getType().equalsIgnoreCase("2")){
convertView2 = convertView;
if(convertView2 == null){
convertView2 = vi.inflate(R.layout.list_say_he_item, null);
holder = new ViewHolder();
holder.tvTime = (TextView) convertView2.findViewById(R.id.tv_sendtime);
holder.tvText = (TextView) convertView2.findViewById(R.id.messagedetail_row_text);
holder.layout = (LinearLayout) convertView2.findViewById(R.id.layout_bj);
convertView2.setTag(holder);
}else{
holder = (ViewHolder) convertView2.getTag();
}
convertView = convertView2;
}
return convertView;
}
package com.chat.demo.activity;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.chat.demo.R;
public class ChatMsgViewAdapter extends BaseAdapter {
public static interface IMsgViewType {
int IMVT_COM_MSG = 0;
int IMVT_TO_MSG = 1;
}
private static final String TAG = ChatMsgViewAdapter.class.getSimpleName();
private List<ChatMsgEntity> coll;
private Context ctx;
private LayoutInflater mInflater;
public ChatMsgViewAdapter(Context context, List<ChatMsgEntity> coll) {
ctx = context;
this.coll = coll;
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return coll.size();
}
public Object getItem(int position) {
return coll.get(position);
}
public long getItemId(int position) {
return position;
}
public int getItemViewType(int position) {
// TODO Auto-generated method stub
ChatMsgEntity entity = coll.get(position);
if (entity.getMsgType()) {
return IMsgViewType.IMVT_COM_MSG;
} else {
return IMsgViewType.IMVT_TO_MSG;
}
}
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 2;
}
public View getView(int position, View convertView, ViewGroup parent) {
ChatMsgEntity entity = coll.get(position);
boolean isComMsg = entity.getMsgType();
ViewHolder viewHolder = null;
if (convertView == null) {
if (isComMsg) {
convertView = mInflater.inflate(
R.layout.chatting_item_msg_text_left, null);
} else {
convertView = mInflater.inflate(
R.layout.chatting_item_msg_text_right, null);
}
viewHolder = new ViewHolder();
viewHolder.tvSendTime = (TextView) convertView
.findViewById(R.id.tv_sendtime);
viewHolder.tvUserName = (TextView) convertView
.findViewById(R.id.tv_username);
viewHolder.tvContent = (TextView) convertView
.findViewById(R.id.tv_chatcontent);
if (!isComMsg) {
viewHolder.ivSuc = (ImageView) convertView
.findViewById(R.id.iv_succ);
}
viewHolder.isComMsg = isComMsg;
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.tvSendTime.setText(entity.getDate());
viewHolder.tvUserName.setText(entity.getName());
viewHolder.tvContent.setText(entity.getText());
if (!isComMsg) {
if (!entity.getSucMeg()) {
viewHolder.ivSuc.setVisibility(View.VISIBLE);
} else {
viewHolder.ivSuc.setVisibility(View.GONE);
}
}
return convertView;
}
static class ViewHolder {
public TextView tvSendTime;
public TextView tvUserName;
public TextView tvContent;
public ImageView ivSuc;
public boolean isComMsg = true;
}
}
我是这样处理的 希望可以帮助到你