您的位置:首页 > 移动开发 > Android开发

Android——聊天布局Adapter的简单实现

2017-07-09 13:01 513 查看
public class ChatAdapter extends BaseAdapter {
private List<ChatMessage> datas;
private RobotFragment act;
private int layouts[]={R.layout.item_chat_from,R.layout.item_chat_to};

public ChatAdapter(List<ChatMessage> datas, RobotFragment act) {
super();
this.datas = datas;
this.act = act;

}

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

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

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder vh=null;
if(convertView==null)
{
vh=new ViewHolder();
convertView=act.getActivity().getLayoutInflater().inflate(layouts[getItemViewType(position)], null);
vh.message=(TextView) convertView.findViewById(R.id.chat_message);
vh.time=(TextView) convertView.findViewById(R.id.chat_time);

convertView.setTag(vh);
}else{
vh=(ViewHolder) convertView.getTag();
}
vh.message.setText(datas.get(position).getMessage());
vh.time.setText(getTimes(datas.get(position).getTime()));

return convertView;
}

private String getTimes(Date date) {
// TODO Auto-generated method stub
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return sdf.format(date);
}

@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 2;
}

@Override
public int getItemViewType(int position) {
// TODO Auto-generated method stub
return datas.get(position).getChattype()==ChatMessage.ChatType_from?0:1;
}
private static class ViewHolder
{
public TextView time,message;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息