CheckBox не обновляет статус при повторной проверкеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 CheckBox не обновляет статус при повторной проверке

Сообщение Anonymous »

В моем классе адаптера у меня есть ViewHolder RecylerView, в котором я использую флажок, чтобы получить ответ
пользователя

Код: Выделить всё

public class SecondViewHolder extends  RecyclerView.ViewHolder {
private CheckBox optionA, optionB,optionC,optionD;
public SecondViewHolder (@NonNull View itemView) {
super(itemView);
optionA = itemView.findViewById(R.id.optionA);
optionB = itemView.findViewById(R.id.optionB);
optionC = itemView.findViewById(R.id.optionC);
optionD = itemView.findViewById(R.id.optionD);
}
private void bindData(final  int pos) {
optionA.setOnCheckedChangeListener(null);
optionB.setOnCheckedChangeListener(null);
optionC.setOnCheckedChangeListener(null);
optionD.setOnCheckedChangeListener(null);

optionA.setChecked(false);
optionB.setChecked(false);
optionC.setChecked(false);
optionD.setChecked(false);
int selectedAns = g_question.get(pos).getSelectedAns();
Log.d("SecondViewHolder", "SelectedAns for pos " + pos + ": " + selectedAns);

setCheckBoxListeners(pos);
private void setCheckBoxListeners(final int pos) {
optionA.setOnCheckedChangeListener((buttonView, isChecked) -> selectOption(pos));
optionB.setOnCheckedChangeListener((buttonView, isChecked) -> selectOption(pos));
optionC.setOnCheckedChangeListener((buttonView, isChecked) -> selectOption(pos));
optionD.setOnCheckedChangeListener((buttonView, isChecked) -> selectOption(pos));
}

private void selectOption(int pos) {
int status = 0;
if (optionA.isChecked()) status += 1;
if (optionB.isChecked()) status += 2;
if (optionC.isChecked()) status += 4;
if (optionD.isChecked()) status += 8;

g_question.get(pos).setSelectedAns(status);
changeStatus(pos, status);

}

private void changeStatus(int id, int status) {
if (g_question.get(id).getStatus() != Review) {
g_question.get(id).setStatus(status);
}
}
когда пользователь снова нажимает на флажок, флажок снимается, но статус не восстанавливает предыдущее значение.
Я попытался обновить флажок< /p>

Код: Выделить всё

         updateCheckBoxStates(selectedAns);
private void updateCheckBoxStates(int selectedAns) {
optionA.setChecked((selectedAns & 1) != 0);
optionB.setChecked((selectedAns & 2) != 0);
optionC.setChecked((selectedAns & 4) != 0);
optionD.setChecked((selectedAns & 8) != 0);
}
но это обновление, все флажки установлены по умолчанию

Подробнее здесь: https://stackoverflow.com/questions/785 ... cked-again
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»