【问题标题】:How to mark specific chat bubble in Chat Adapter如何在聊天适配器中标记特定的聊天气泡
【发布时间】:2016-05-02 21:33:07
【问题描述】:

我有一个群聊,我想标记一条特定的消息(当isProducertrue 时发送的消息)。问题是它将所有消息标记在一起...... 这是我的Adapter 代码:

if(customer_id.equals(message.getUserId()))
            isMe = true;
        if(message.getUserId().equals(producer_id))
            isProducer = true;

        if (isMe) {
            holder.imageRight.setVisibility(View.VISIBLE);
            holder.imageLeft.setVisibility(View.GONE);
            holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);

        } else {
            holder.imageLeft.setVisibility(View.VISIBLE);
            holder.imageRight.setVisibility(View.GONE);
            holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
        }

        holder.body.setText(message.getBody());
        if (isProducer) {
            holder.body.setTypeface(null, Typeface.BOLD);
        }

谢谢!

【问题讨论】:

  • else 添加到if (isProducer) 并在此处设置默认字体
  • 不,抱歉,它不起作用...

标签: java android chat android-arrayadapter adapter


【解决方案1】:

试试这个

isMe = customer_id.equals(message.getUserId()); 
    isProducer = message.getUserId().equals(producer_id);

    if (isMe) {
        holder.imageRight.setVisibility(View.VISIBLE);
        holder.imageLeft.setVisibility(View.GONE);
        holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);

    } else {
        holder.imageLeft.setVisibility(View.VISIBLE);
        holder.imageRight.setVisibility(View.GONE);
        holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
    }

    holder.body.setText(message.getBody());
    if (isProducer) {
        holder.body.setTypeface(null, Typeface.BOLD);
    } else {
        holder.body.setTypeface(null, Typeface.NORMAL); // Or anything else
     }

【讨论】:

    【解决方案2】:
    if(customer_id.equals(message.getUserId()))
                isMe = true;
            if(message.getUserId().equals(producer_id))
                isProducer = true;
    
            if (isMe) {
                holder.imageRight.setVisibility(View.VISIBLE);
                holder.imageRight.setbackground(R.drawable.rightimg);
                holder.imageLeft.setVisibility(View.GONE);
                holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
    
            } else {
                holder.imageLeft.setVisibility(View.VISIBLE);
                holder.imageRight.setbackground(R.drawable.leftimg);
                holder.imageRight.setVisibility(View.GONE);
                holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
            }
    
            holder.body.setText(message.getBody());
            if (isProducer) {
                holder.body.setTypeface(null, Typeface.BOLD);
            }
    

    }

    你可以使用 R.drawable.leftimg 和 R.drawable.rightimg 应该是 Ninepatch 图片

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多