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

本文介绍了一个基于Java的聊天适配器类实现,该类继承自BaseAdapter,用于处理聊天消息的显示。文章详细展示了如何根据不同类型的聊天消息加载不同的布局,并通过ViewHolder模式优化了视图的复用。
部署运行你感兴趣的模型镜像


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;
    }
}

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值