[英]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.