У меня есть RecyclerView With 60 Item.что элементы имеют RadioGroup, и в этом есть два переключателя
Я использую DataBinding Too
У меня есть FabButton, и если щелкнуть по Этому, я перейду к Результату, но если проверена вся RadioGroup:)
Я пишу как этот код, и это работает, но есть какая-то ошибка ... Когда я нажимаю на 60-й элемент, даже не проверяю 59, я перехожу к Результату.
почему?
Это мой код:
//Select All Radio Group
public boolean allSelected() {
boolean allChecked = true;
for (Question question : questions) {
allChecked = question.getSelectedId() != 0;
}
return allChecked;
}
//Card background if Uncheck the question
private void showHideErrorBackground(boolean show) {
for (Question question : questions) {
question.setShowErrorBackground(show);
}
mbtiQuestAdapter.notifyDataSetChanged();
}
и мне нравится этот метод:
if (allSelected()) {
Intent intent = new Intent(MbtiQuestionActivity.this, ResultActivity.class);
startActivity(intent);
} else {
snack bar =
Snackbar.make(coordinator, R.string.check_all_ques_err, Snackbar.LENGTH_SHORT)
.setAction(R.string.snack_find_unchecked_ques, new View.OnClickListener() {
@Override
public void onClick(View view) {
showHideErrorBackground(true);
}
});
ViewCompat.setLayoutDirection(snackbar.getView(), ViewCompat.LAYOUT_DIRECTION_RTL);
snackbar.show();
}
Question.java (данные модели)
public class Question extends BaseQuestion {
private int selectedId;
private boolean showErrorBackground;
@Bindable
public void setShowErrorBackground(boolean showErrorBackground) {
this.showErrorBackground = showErrorBackground;
notifyPropertyChanged(BR.showErrorBackground);
}
@Bindable
public int getSelectedId() {
return selectedId;
}
public void setSelectedId(int selectedId) {
this.selectedId = selectedId;
notifyPropertyChanged(BR.selectedId);
}
public boolean isShowErrorBackground() {
return showErrorBackground;
}
}
Спасибо за помощь мне