我有一個Recycler視圖,其每個項目都有2個TextView和一個Switch View。在填充列表的同時,根據其中一個TextView的內容,我想讓開關可見或不可見。在Recycler View的每個項目中訪問視圖
This is what I want:
This is what I am getting:
要設置開關的知名度,我們可以使用Switch.setVisibility(View.GONE)
。但我不知道在哪裏使用這行代碼。
我有一個Recycler視圖,其每個項目都有2個TextView和一個Switch View。在填充列表的同時,根據其中一個TextView的內容,我想讓開關可見或不可見。在Recycler View的每個項目中訪問視圖
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());
}
感謝。這工作。你能以平信徒的語言解釋這些重載方法到底做了什麼嗎? –
你必須保持在onBindViewHolder(知名度)RecyclerAdapter類
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);
}
把這裏的代碼,你的適配器和活動 –
適配器:https://pastebin.com/cKgyEh1u 片段:https://pastebin.com/a9pfks3g –