listview 多种类型

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:33   2156   0

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


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP