У меня есть RecyclerView
, в котором 60 элементов, а в RadioGroup есть 2 RadioButton
... и у меня есть Fab button
, затем, нажав на него, Snack bar
показывает, что у вас нет разрешения перейти на следующую страницупотому что вы проверили все 60 радио группы.Я устанавливаю действие в Снэк-баре, чем Понимаю, что RadioGroup
не проверено ... и меняется TextColor
Снять отметку radio group
.Как это исправить?
Метод, который проверяет, все ли проверки RadioButton
//Select All Radio Group
public boolean allSelected() {
boolean allChecked = true;
for (Question question : questionList) {
allChecked = question.getSelectedId() != 0;
}
return allChecked;
}
нажмите на потрясающую кнопку
public void onResultClick(View view) {
if (allSelected()) {
startActivity(new Intent(MbtiQuestionActivity.this, ResultActivity.class));
} else {
snackbar =
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) {
//here should right the code that uncheck radio group
}
});
ViewCompat.setLayoutDirection(snackbar.getView(), ViewCompat.LAYOUT_DIRECTION_RTL);
snackbar.show();
}
}
Класс вопроса
public class Question extends BaseQuestion {
private String questTitle; private String firstQuest; private String secondQuest; private int score = 0; private int firstQuestScore = 2; private int secondQuestScore = 3;
private int selectedId;
public Question(String questTitle, String firstQuest, String secondQuest) {
this.questTitle = questTitle;
this.firstQuest = firstQuest;
this.secondQuest = secondQuest;
}
public Question(){
}
public String getQuestTitle() {
return questTitle; }
public void setQuestTitle(String questTitle) {
this.questTitle = questTitle; }
public String getFirstQuest() {
return firstQuest; }
public void setFirstQuest(String firstQuest) {
this.firstQuest = firstQuest; }
public String getSecondQuest() {
return secondQuest; }
public void setSecondQuest(String secondQuest) {
this.secondQuest = secondQuest; }
public int getScore() {
return score; }
public void setScore(int questNum, int questScore) {
this.score = ((questNum * questScore) + questNum); }
public int getFirstQuestScore() {
return firstQuestScore; }
public void setFirstQuestScore(int firstQuestScore) {
this.firstQuestScore = firstQuestScore; }
public int getSecondQuestScore() {
return secondQuestScore; }
public void setSecondQuestScore(int secondQuestScore) {
this.secondQuestScore = secondQuestScore; }
public void mathScore(int questNum, int questScore) { }
public int getSelectedId() {
return selectedId; }
public void setSelectedId(int selectedId) {
this.selectedId = selectedId; }
}
Потрясающе в xml
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:src="@drawable/check_outline"
app:fabSize="normal"
android:onClick="@{handlers::onResultClick}"
android:clickable="true"
android:focusable="true"/>
, и я использую DataBinding ... спасибо.
Нажмите «بررسی» и фон TextColor или CardView будет изменен! (Радиогруппа не проверена!)
ошибка журнала:
Process: mbtitest.kiars.me.mbti, PID: 19757
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
at mbtitest.kiars.me.mbti.databinding.QuesItemRowBinding.executeBindings(QuesItemRowBinding.java:196)
at android.databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding.java:437)
at android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:409)
at android.databinding.ViewDataBinding$7.run(ViewDataBinding.java:194)
at android.databinding.ViewDataBinding$8.doFrame(ViewDataBinding.java:286)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:676)
at android.view.Choreographer.doFrame(Choreographer.java:603)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:859)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5885)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)