пользователя
Код: Выделить всё
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