繁体   English   中英

在回收站视图的每个项目中访问视图

[英]Accessing a view in each item of Recycler View

我有一个Recycler视图,每个视图都有2个TextView和一个Switch View。 在填充列表时,基于TextView之一的内容,我想使开关可见或不可见。

This is what I want:

在此处输入图片说明

This is what I am getting:

在此处输入图片说明

要设置开关的可见性,我们可以使用Switch.setVisibility(View.GONE) 但是我不知道在哪里使用这一行代码。

在适配器上更改此方法:

 @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        LaunSubsItem launSubsItem = laundrySubsList.get(position);
        if(your_condition_here){
        holder. switchSubs.setVisibility(View.GONE);
        }
        holder.tvWasherName.setText(launSubsItem.getDescription());
        holder.tvWasherStatTime.setText(launSubsItem.getTime());

    }

您必须在RecyclerAdapter类的onBindViewHolder()方法中保持可见性

if (showSwitch) {
viewHolder.yourSwitch.setVisibility(View.VISIBLE);
} else {
viewHolder.yourSwitch.setVisibility(View.GONE);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    LaunSubsItem launSubsItem = laundrySubsList.get(position);
    holder.tvWasherName.setText(launSubsItem.getDescription());
    holder.tvWasherStatTime.setText(launSubsItem.getTime());
    // Add this to your Adapter
    holder.switchSubs.setVisibility(tvWasherStatTime.getText().toString().contains("Available") ? View.GONE : View.VISIBLE);
}
@Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        LaunSubsItem launSubsItem = laundrySubsList.get(position);
        holder.tvWasherName.setText(launSubsItem.getDescription());
        holder.tvWasherStatTime.setText(launSubsItem.getTime());
        if(launSubsItem.getTime().equals("Available")){
           viewHolder.switchSubs.setVisibility(View.GONE);
        } else {
        viewHolder.switchSubs.setVisibility(View.VISIBLE);
       }
    }

如下更新您的onBindViewHolder

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    LaunSubsItem launSubsItem = laundrySubsList.get(position);
    holder.tvWasherName.setText(launSubsItem.getDescription());
    holder.tvWasherStatTime.setText(launSubsItem.getTime());

    if (launSubsItem.getTime().contains("Available"))
        holder.switchSubs.setVisibility(View.GONE);
    else
        holder.switchSubs.setVisibility(View.VISIBLE);

}

暂无
暂无

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

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