Как получить значение всех флажков в одном списке - PullRequest
0 голосов
/ 29 апреля 2019

В следующем коде я хочу сохранить все значения checkboxes в

List<integar>ProcedureIDs = new ArrayList<>();

, но сохранить только последний установленный флажок id.i хочу сохранить в нем несколько идентификаторов ...

это мой recycleView адаптер ..

public class ProcedureAdapter extends  RecyclerView.Adapter<ProcedureAdapter.MyViewHolder> {

    private List<LabAppointmentProcedure> labAppointmentProcedureList;
       List<Integer> ProcedureIDs = new ArrayList<>();
    class MyViewHolder extends  RecyclerView.ViewHolder implements View.OnClickListener{
        TextView procedureName, procedureId;
        private int procedureID;
        CheckBox checkBox;

        MyViewHolder(final View itemView){
            super(itemView);
            itemView.setOnClickListener(this);

            procedureName = (TextView) itemView.findViewById(R.id.txtProcedureName);
            procedureId = (TextView) itemView.findViewById(R.id.txtProcedureId) ;
            checkBox = (CheckBox) itemView.findViewById(R.id.chkProcedure);

            checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if(isChecked){
                         ProcedureIDs.add(Integer.parseInt(procedureId.getText().toString()));
                       // AppointmentDetails.procedureID = Integer.parseInt(procedureId.getText().toString());
                        //EnterSample.ProcedureID = Integer.parseInt(procedureId.getText().toString());
                        EnterSample.ProcedureSampleIDs =ProcedureIDs;
                    }else{
                    }
                }
            });
        }

        @Override
        public void onClick(View v) {

        }
    }

    public ProcedureAdapter(List<LabAppointmentProcedure> labAppointmentProceduresList){
        this.labAppointmentProcedureList = labAppointmentProceduresList;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i){
        View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.procedure_row_item,viewGroup,false);
        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position){
        LabAppointmentProcedure labAppointmentProcedure = labAppointmentProcedureList.get(position);
        holder.procedureName.setText(labAppointmentProcedure.getProcedure());
        holder.procedureId.setText(String.valueOf(labAppointmentProcedure.getProcedureID()));

        if(holder.checkBox.isChecked()){
            holder.procedureID = labAppointmentProcedureList.get(position).getProcedureID();
            ProcedureIDs.add(Integer.parseInt(holder.procedureId.getText().toString()));
        }

    }
    @Override
    public int getItemCount(){
        return labAppointmentProcedureList.size();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...