Как создать счетчик очков в Android Studio? - PullRequest
0 голосов
/ 07 ноября 2019

Я - новичок в Android Studio и имею базовый опыт работы с Java. Я попытался создать приложение для Android, в котором пользователь должен ввести число. После нажатия кнопки случайное число генерируется от 0 до 6, если введенное число и сгенерированное число совпадают, тогда пользователь получает 1 очко. Я пытался реализовать счетчик очков, но после 1 правильного предположения счет остаётся равным 1 и больше никогда не увеличивается.

public class MainActivity extends AppCompatActivity {
String matchingnumbers = "Congratulations!";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void on_button_click(View view) {
    TextView numberW = this.findViewById(R.id.textView);
    EditText tvW = this.findViewById(R.id.editText);
    TextView scoreW =this.findViewById(R.id.textView3);
    Random r = new Random();
    int dicenumber = r.nextInt(6);
    numberW.setText(Integer.toString(dicenumber));

    try {
        int number = Integer.parseInt(numberW.getText().toString());
        int tv = Integer.parseInt(tvW.getText().toString());
            if(number==tv){
                int score = 0;
                score++;
                Toast.makeText(getApplicationContext(), matchingnumbers, Toast.LENGTH_LONG).show();
                scoreW.setText("Your score is = " + score);
        }

    }
    catch (Exception ex) {
        Log.e("Button Errors", ex.toString());
    }
}
}

Ответы [ 2 ]

2 голосов
/ 07 ноября 2019

Не объявляйте score в методе, потому что он не сохраняется. Вместо этого объявите это в классе:

public class MainActivity extends AppCompatActivity {
String matchingnumbers = "Congratulations!"; 
//here
int score = 0;
// ...
}
0 голосов
/ 07 ноября 2019

Код, который вы написали, это ....

if(number==tv)
   {
       int score = 0;
       score++;
       Toast.makeText(getApplicationContext(), matchingnumbers, Toast.LENGTH_LONG).show();
       scoreW.setText("Your score is = " + score);
   }

Соблюдайте утверждения в , если условие. Внутри , если , вы создаете переменную счета, так что каждый раз, когда пользователь получает правильный ответ, переменная счета будет создаваться и увеличиваться, так что вы получите всегда 1 в качестве результата, даже если вы получаете одну и ту же комбинацию столько раз

Итак, поймите scope этой переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...