如何在适配器中设置条件?

how to set condition in adapter?

我用它来显示一些文本视图

 public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        Post p = posts.get(position);
        holder.textView1.setText(p.getName());
        holder.textView2.setText(p.getFamilyName());
        if (posts.get(position).getBoolean()){
            holder.textView3.setVisibility(View.VISIBLE);
        }
        
    }

但是当我使用 notifyDataSetChange(); 时我遇到了一些问题设置 if(){} 的正确方法是什么 在回收者看来?

试试这个方法:

public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    Post p = posts . get (position);
    holder.textView1.setText(p.getName());
    holder.textView2.setText(p.getFamilyName());
    holder.textView3.setVisibility(
        if (posts.get(position).getBoolean()) {
            View.VISIBLE
        } else {
            View.GONE
        }
    );
}

你错过了 else 部分。

  public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    Post p = posts.get(position);
    holder.textView1.setText(p.getName());
    holder.textView2.setText(p.getFamilyName());
    holder.textView3.setVisibility(posts.get(position).getBoolean() ? View.VISIBLE : View.GONE);
}