listview 多种类型

本文探讨了如何根据消息发送者类型(来自还是自身)来调整Android应用中的消息视图布局,通过不同的视图资源和布局策略实现消息的区分显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. type count

2,  type  position

3, getview   by  type



@Override
    public int getItemViewType(int position) {
        int type = -1;
        MessageBean message = (MessageBean) getItem(position);
        if (message.getAccount_id() == fromAccountId) {
            type = TYPE_HE;
        } else {
            type = TYPE_ME;
        }
        return type;
    }
    
    @Override
    public int getViewTypeCount() {
        return TYPE_MAX_COUNT;
    }


@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        MessageBean message = (MessageBean) getItem(position);
        ViewHolder holder = null;
        int type = getItemViewType(position);
        if (convertView == null) {
            switch (type) {
                case TYPE_HE:
                    convertView = mInflater.inflate(R.layout.a06_item_talk_message_ta, null);
                    break;
                case TYPE_ME:
                    convertView = mInflater.inflate(R.layout.a06_item_talk_message_me, null);
                    break;
            }
            
            holder = new ViewHolder();
            holder.timeView = (TextView) convertView.findViewById(R.id.message_time);
            holder.messageView = (TextView) convertView.findViewById(R.id.message_content);
            convertView.setTag(holder);
        }
        
        holder = (ViewHolder) convertView.getTag();
        
        holder.timeView.setText(A06Utils.getDateStringByUTC(message.getCreate_time()));
        holder.messageView.setText(message.getContent());
        return convertView;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值