Мой тост проходит только через оператор else Android Java

#java #android #if-statement #toast

Вопрос:

Все еще новичок в разработке Android. Я пытаюсь создать простое приложение «результаты оценки», в котором пользователь должен ввести свой результат, и их результаты соответственно отображаются в виде тоста. Проблема в том, что мой тост относится только к заявлению else, независимо от того, какой балл ввел пользователь. Что я делаю не так? Пожалуйста, помогите.

оценка int = 100;

 public void checkResults (View view){

    Log.i("Results","Button Tapped");

    Button button = (Button) findViewById(R.id.button);

    TextView editTextNumber = (TextView) findViewById(R.id.editTextNumber);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(score < 29){

                Toast.makeText(getApplicationContext(), "You got an F", Toast.LENGTH_SHORT).show();
            }
            else if (score >= 30 amp;amp; score <= 39){

                Toast.makeText(getApplicationContext(), "You got E", Toast.LENGTH_SHORT).show();
            } else {

                Toast.makeText(getApplicationContext(), "You failed", Toast.LENGTH_SHORT).show();
            }
        }
    });


}
 

Комментарии:

1. Где вы переназначаете score ? Я не вижу этого в вашем коде.

2. Я бы предположил, что вы не меняете значение переменной score? Просто у меня в голове мелькнула одна идея

3. Должен быть редактируемый текст или другой вид представления ввода, вы считываете значение из него или указываете это значение для оценки.

4. Покажите нам, где вы устанавливаете переменную оценки

5. Поскольку вы задаете переменную оценку 100, именно поэтому код переходит к части else. В вашем коде, когда оценка больше 39, код перейдет в другую часть.

Ответ №1:

Используйте EditText вместо TextView, чтобы получить оценку в качестве входных данных от пользователя. Внутри OnClickListener() кнопки назначьте входное значение переменной оценки перед операторами if-else с помощью

 score = Integer.parseInt(editext.getText().toString())