Я хочу скрыть флажок всех списков, если я щелкнул один список в действии, используя утилиту восстановления.Но когда я его реализую, исчезает только флажок в списке повторного просмотра выбранной позиции.Как я могу скрыть флажок всего списка?Конечно, это возможно на адаптере reyclerview, но я хочу, чтобы эта функция была реализована в действии.
В действии адаптер был объявлен:
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerViewAdapter = new RecyclerViewAdapter(this, patientList, selected_patientList);
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(recyclerViewAdapter);
И я написал код, который скрывает флажок, когда щелкает список повторного просмотра в действии:
recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkBox) ;
checkBox.setVisibility(View.GONE);
}
А мой код адаптера для повторного просмотра:
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
private Activity activity;
public ArrayList<PatientItem> patientList = new ArrayList<>();
public ArrayList<PatientItem> selected_patientList = new ArrayList<>();
Context mContext;
boolean checkboxIsVisible = true ;
public RecyclerViewAdapter(Context context, ArrayList<PatientItem> patientList, ArrayList<PatientItem> selected_patientList) {
this.mContext = context;
this.patientList = patientList;
this.selected_patientList = selected_patientList;
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView patientType;
TextView clinicID;
TextView patientName;
TextView dateFirst;
TextView dateFinal;
CheckBox checkBox ;
ConstraintLayout cl_listitem;
public MyViewHolder(View itemView) {
super(itemView);
patientType = (TextView) itemView.findViewById(R.id.typeViewItem);
clinicID = (TextView) itemView.findViewById(R.id.clinicIDItem);
patientName = (TextView) itemView.findViewById(R.id.patientNameItem);
dateFirst = (TextView) itemView.findViewById(R.id.dateFirstItem);
dateFinal = (TextView) itemView.findViewById(R.id.dateFinalItem);
checkBox = (CheckBox) itemView.findViewById(R.id.checkBox) ;
cl_listitem = (ConstraintLayout) itemView.findViewById(R.id.cl_listitem);
}
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.patient_list_item, parent, false);
final RecyclerViewAdapter.MyViewHolder vHolder = new RecyclerViewAdapter.MyViewHolder(itemView) ;
return vHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
PatientItem data = patientList.get(position);
holder.patientType.setText(data.getPatientType());
holder.clinicID.setText(data.getClinicID());
holder.patientName.setText(data.getPatientName());
holder.dateFirst.setText(data.getDateFirst());
holder.dateFinal.setText(data.getDateFinal());
holder.checkBox.setChecked(data.isDeleteBox());
holder.checkBox.setVisibility(checkboxIsVisible?View.VISIBLE:View.GONE);
if(data.getPatientType() == "P"){
holder.patientType.setText("");
holder.patientType.setBackground(ContextCompat.getDrawable(mContext, R.drawable.parkinson));
}
else if(data.getPatientType() == "ET"){
holder.patientType.setText("");
holder.patientType.setBackground(ContextCompat.getDrawable(mContext, R.drawable.essential_tremor));
}
else{
holder.patientType.setText("ㅡ");
}
}
@Override
public int getItemCount() {
return patientList.size();
}
public void clear() {
int size = patientList.size() ;
patientList.clear() ;
notifyItemRangeRemoved(0, size);
}
//어댑터 정비
public void refreshAdapter() {
this.selected_patientList = selected_patientList;
this.patientList = patientList;
this.notifyDataSetChanged();
}
}