У меня есть приложение, которое в основном представляет собой опрос.Некоторые вопросы требуют, чтобы один набор условий ИЛИ другой набор был заполнен перед продолжением.
Когда пользователь нажимает да, он получает один набор полей EditText, если он нажимает нет, он получает другой набор.Любой из вариантов включает одну и ту же кнопку продолжения, но мне нужно проверить, что заполнен только один из двух наборов, прежде чем переходить к следующему действию.
bContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (myYesSection.isShown() && valueCombined.getText().toString().isEmpty()){
Toast.makeText(getApplicationContext(), "Please enter the combined score.", Toast.LENGTH_LONG).show();
}
if (myNoSection.isShown() && valueOne.getText().toString().isEmpty() || valueTwo.getText().toString().isEmpty() || valueThree.getText().toString().isEmpty()){
Toast.makeText(getApplicationContext(), "Please fill out all fields.", Toast.LENGTH_LONG).show();
}
else{
Intent toNextActivity = new Intent(getApplicationContext(), QuestionThree.class);
startActivity(toNextActivity);
}
}
});
В действии, если valueCombined заполнено, тост составляет «Пожалуйста, заполните все поля». и пользователь не переходит к следующему действию.Если valueCombined заполнено, мне не нужно заполнять другие поля.
Заполнение valueOne, valueTwo, и valueThree позволяет открыть следующее действие, но тост за «Пожалуйста, введите объединенный счет».
Что я должен изменить, чтобы для нажатия кнопки требовалось только одно из двух условий?
Обновить рабочий код Спасибо @Andreas за урок.Это проверяет именно то, что мне нужно, и не выдает неправильный тост, если на дисплее отображается неправильный набор условий:
bContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int count = 0;
if (combinedValue.getText().toString().isEmpty()){
if (myYesSection.isShown()) {
Toast.makeText(getApplicationContext(), "Please enter combined score.", Toast.LENGTH_LONG).show();
}
count++;
}
if (valueOne.getText().toString().isEmpty() || valueTwo.getText().toString().isEmpty() || valueThree.getText().toString().isEmpty()){
if (myNoSection.isShown()) {
Toast.makeText(getApplicationContext(), "Please fill out all fields.", Toast.LENGTH_LONG).show();
}
count++;
}
if (count == 1){
Intent toNextActivity = new Intent(getApplicationContext(), QuestionThree.class);
startActivity(toNextActivity);
}
}