gpt4 book ai didi

android - if 子句在 onBindViewHolder Android 中无法正常工作

转载 作者:行者123 更新时间:2023-11-29 16:38:29 24 4
gpt4 key购买 nike

我有一个列出来自服务器的数据的 RecyclerView,它必须根据条件以不同方式显示每一行数据。我的数据是票证消息列表。如果一条消息是从用户发送的,它的背景必须是灰色的,如果它是从代理发送的,它必须是蓝色的。此外,如果此消息有附件,则它必须显示下载图标。这是我的适配器代码:

    @Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
if (holder.getItemViewType() == 0) {
holder.itemView.setBackgroundResource(R.drawable.radius_background_gray);
holder.ticketDate.setBackgroundResource(R.drawable.radius_background_light_gray);
}
if(ticket.get(position).getAttachment() != null)
holder.ticketStatus.setImageResource(R.drawable.ic_attachment_black_24dp);

holder.ticketTitle.setText(ticket.get(position).getAgentName() + " said :");

}

@Override
public int getItemViewType(int position) {
if(ticket.get(position).getDirection().equals("out"))
return 0;
else return 1;
}

颜色设置正确,但是当我使用 if 子句为附件设置 imageView 时,一条没有附件且为 null 的消息显示附件图标!我还应该在 getItemType 中而不是在 onBindViewHolder 中检查此条件吗?

最佳答案

我可以告诉你,在我使用 RecyclerView 的实践中,最好在 if 中包含一个 else 子句。

因此,例如,在您的情况下,您可以执行以下操作:

if(ticket.get(position).getAttachment() != null)
holder.ticketStatus.setImageResource(R.drawable.ic_attachment_black_24dp);
else
holder.ticketStatus.setVisibility(View.GONE);

关于android - if 子句在 onBindViewHolder Android 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51963107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com