Как заставить программу Android идентифицировать функцию «если»?

#java #android

#java #Android

Вопрос:

Я новичок, пытающийся создать приложение для подсчета голосов. Для создания этого я использовал видео с канала newboston.

 package com.example.tasbih2;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

int counter;
Button tap, reset;
TextView display, words;

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

    counter = 0;
    tap = (Button) findViewById(R.id.button1);
    reset = (Button) findViewById(R.id.resetbutton);
    words = (TextView) findViewById(R.id.words);
    display = (TextView) findViewById(R.id.counter);

    if (counter > 10){
        words.setText("C");
    }
    else if (counter > 7){
        words.setText("B");
    }
    else{
        words.setText("A");
    }

    //This is the command to add a count
    tap.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            counter  ;
            display.setText(" "   counter);
        }
    });

    reset.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            counter = 0;
            display.setText(" "   counter);
        }
    });
}
  

Я много раз пытался запустить программу. Я хотел, чтобы приложение было таким, чтобы, когда счетчик достигал определенного числа, запись поверх числа менялась. Каким-то образом, когда счетчик достигает цифры 8, надпись сверху не меняется. Я попытался использовать функцию «while». Однако это просто разбило мое приложение. Может кто-нибудь подсказать мне, как мне сделать мою программу так, чтобы функция «если» регулярно проверялась, если счетчик достигает определенного числа?

Ответ №1:

Ваш код не работает, потому onCreate() что вызывается только тогда, когда действие создается в первый раз, и поскольку ваша логика находится внутри него, она больше никогда не вызывается. Итак, теперь вы меняете значения при нажатии кнопки, поэтому переместите туда свою логику, и она будет вызываться каждый раз при нажатии кнопки. Просто измените свой код на это :

     //This is the command to add a count
    tap.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            counter  ;
            display.setText(" "   counter);
            if (counter > 10){
             words.setText("C");
            }
            else if (counter > 7){
             words.setText("B");
            }
            else{
             words.setText("A");
            }
          }
      });

    reset.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            counter = 0;
            display.setText(" "   counter);
            words.setText("A");
         }
      });
  

Ответ №2:

Переместите операторы if сюда:

 tap.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        counter  ;

        if (counter > 10){
            words.setText("C");
        } else if (counter > 7){
            words.setText("B");
        } else {
            words.setText("A");
        }

        display.setText(" "   counter);
    }
});
  

Таким образом, он проверяется каждый раз counter , когда увеличивается.

Вам также нужно будет сбросить ее при сбросе счетчика:

 reset.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        counter = 0;
        words.setText("A");
        display.setText(" "   counter);
    }
});