В моем представлении переработчика, когда я нажимаю одну опцию и прокручиваю другую, выбирается - PullRequest
0 голосов
/ 02 марта 2020

Здравствуйте, у меня есть опция в моем представлении рециркулятора, которая содержит флажок, и он работает, но проблема в том, что когда я прокручиваю, выбирается еще один случайный случай, и я не хочу этого, мне нужно выбрать некоторые из них, но не случайный, Я не знаю, почему это происходит. Мой адаптер для этих опций - это, я получаю выбранные предметы, как только они будут заряжены в моем представлении переработчика.

public class OpcionesAdapter extends RecyclerView.Adapter<OpcionesAdapter.ViewHolderOpciones> {

Context mCtx;
ArrayList<OpcionesClass> opcionesList;
public ArrayList<OpcionesClass> checkedOptions = new ArrayList<>();


public OpcionesAdapter(Context mCtx, ArrayList<OpcionesClass> opcionesList) {
    this.mCtx = mCtx;
    this.opcionesList = opcionesList;
}

@NonNull
@Override
public ViewHolderOpciones onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemopcion, null);
    return new ViewHolderOpciones(view);
}

@Override
public void onBindViewHolder(@NonNull ViewHolderOpciones holder, int position) {
    holder.tituloOpcion.setText(opcionesList.get(position).getTituloOpcion());

    holder.setItemClickListener(new ItemClickListener() {
        @Override
        public void onItemClick(View view, int pos) {
            CheckBox chk = (CheckBox) view;

            if (chk.isChecked()) {
                checkedOptions.add(opcionesList.get(pos));
            } else if (!chk.isChecked()) {
                checkedOptions.remove(opcionesList.get(pos));
            }

        }
    });
}

@Override
public int getItemCount() {
    return opcionesList.size();
}

public class ViewHolderOpciones extends RecyclerView.ViewHolder implements View.OnClickListener {
    TextView tituloOpcion;
    CheckBox chkOption;

    ItemClickListener itemClickListener;

    public ViewHolderOpciones(@NonNull View itemView) {
        super(itemView);
        tituloOpcion = itemView.findViewById(R.id.tv_TituloOpcion);
        chkOption = itemView.findViewById(R.id.chck_opcion);

        chkOption.setOnClickListener(this);
    }

    public void setItemClickListener(ItemClickListener ic) {
        this.itemClickListener = ic;
    }

    @Override
    public void onClick(View v) {
        this.itemClickListener.onItemClick(v, getLayoutPosition());
    }
}

interface ItemClickListener {
    void onItemClick(View view, int pos);
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...