从 ArrayList 中删除某些 TextView

Remove Certain TextViews From ArrayList

我正在使用 RecyclerView 来显示一个 ArrayList,我计划有很多 TextViews 的组合,所以我没有制作 10 个布局文件,而是用我所有的 TextViews.

某些行我只想显示 TextViews 的某些行,所以我将它们留空(" "),但显然 TextView 仍然占据空白 space。

所以我认为我必须使用 setVisibility Gone 作为空白,并且可能必须在 onBindViewHolder 下,但我不确定 if 语句的外观。

public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> {

List<AdapterData> mItems;

public Adapter() {
    super();
    mItems = new ArrayList<>();
    AdapterData data = new AdapterData();
    data.setName("dummy text");
    data.setNameTwo("");
    data.setNameThree("");

    mItems.add(data);

    data = new AdapterData();
    data.setName("dummy text");
    data.setNameTwo("dummy text");
    data.setNameThree("");
    mItems.add(data);

    data = new AdapterData();
    data.setName("");
    data.setNameTwo("dummy text");
    data.setNameThree("");
    mItems.add(data);

    data = new AdapterData();
    data.setName("");
    data.setNameTwo("dummy text");
    data.setNameThree("dummy text");
    mItems.add(data);

}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.recycler_view_card_item, viewGroup, false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
    AdapterData data = mItems.get(i);
    viewHolder.mName.setText(data.getName());
    viewHolder.mNameTwo.setText(data.getNameTwo());
    viewHolder.mNameThree.setText(data.getNameThree());
}


@Override
public int getItemCount() {

    return mItems.size();
}

class ViewHolder extends RecyclerView.ViewHolder{

    public TextView mName;
    public TextView mNameTwo;
    public TextView mNameThree;


    public ViewHolder(View itemView) {
        super(itemView);
        mName = (TextView)itemView.findViewById(R.id.layoutName);
        mNameTwo = (TextView)itemView.findViewById(R.id.layoutNameTwo);
        mNameThree = (TextView)itemView.findViewById(R.id.layoutNameThree);

    }
}
}

使用TextUtils.isEmpty

if(TextUtils.isEmpty(data.getName())){
viewHolder.mName.setVisibility(GONE);
}else{
 viewHolder.mName.setVisibility(VISIBLE);
 }

if(TextUtils.isEmpty(data.getNameTwo())){
viewHolder. mNameTwo.setVisibility(GONE);
}else{
 viewHolder.mNameTwo.setVisibility(VISIBLE);
 }

等等..