Я пытаюсь настроить способ убедиться, что группы EditText и Radio заполнены. Я настроил логическое значение, чтобы сказать, если это правда или ложь, что что-то отсутствует.
По какой-то причине он не проходит мимо моего System.out.println(test0.2)
, а затем снова начинает печатать на System.out.println(isEmpty)
. scanState
- это перечисление, которое будет в приведенном ниже коде.
public enum ScanState {
scanning,
empty,
stopped
}
ScanState scanState;
public boolean checkForms() {
boolean isEmpty = false;
scanState = ScanState.scanning;
ScrollView scrollView = findViewById(R.id.scroll);
LinearLayout linearLayout = findViewById(R.id.linearLayout);
final int childCount = linearLayout.getChildCount();
View element = null;
for (int i = 0; i < childCount; i++) {
element = linearLayout.getChildAt(i);
System.out.println(i);
switch (scanState) {
case scanning:
System.out.println("test0.2");
if (element instanceof EditText) {
System.out.println("test0.3");
EditText editText = (EditText) element;
if (editText.getText() == null) {
scrollView.scrollTo(0, editText.getTop() + 10);
isEmpty = true;
scanState = ScanState.empty;
break;
}
else {
break;
}
}
if (element instanceof RadioGroup) {
RadioGroup radioGroup = (RadioGroup) element;
System.out.println("test1");
if (radioGroup.getCheckedRadioButtonId() == -1) {
System.out.println("test2");
scrollView.scrollTo(0, radioGroup.getTop());
isEmpty = true;
scanState = ScanState.empty;
break;
} else {
break;
}
}
scanState = ScanState.stopped;
break;
case empty:
break;
case stopped:
break;
}
}
System.out.println(isEmpty);
return isEmpty;
}