简体   繁体   English

从ArrayList中删除某些TextView

[英]Remove Certain TextViews From ArrayList

I am using RecyclerView to display an ArrayList and I plan on having alot of combos of TextViews so instead of making 10 layout files I just made one with ALL my TextViews . 我正在使用RecyclerView来显示一个ArrayList ,我计划有很多TextViews的组合,所以我没有制作10个布局文件,而是用我的所有TextViews制作了一个。

Certain rows I want to display only some of the TextViews so I leave them blank (" ") but obviously the TextView still takes up that blank space. 某些行我只想显示一些TextViews所以我将它们留空(“”)但显然TextView仍然占用了那个空白区域。

So I think I must use setVisibility Gone for the blanks and must probably go under the onBindViewHolder but I am not sure how the if statement must look. 所以我认为我必须使用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);

    }
}
}

Use TextUtils.isEmpty 使用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);
 }

and soo on.. 和soo ..

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM