Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让Android程序识别';如果';功能?_Java_Android - Fatal编程技术网

Java 如何让Android程序识别';如果';功能?

Java 如何让Android程序识别';如果';功能?,java,android,Java,Android,我是一个尝试制作计数应用程序的初学者。我用这个频道的视频制作了这个 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 Mai

我是一个尝试制作计数应用程序的初学者。我用这个频道的视频制作了这个

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”功能。然而,这让我的应用程序崩溃了。有人能建议我如何编制程序,以便在计数器达到某个数字时定期检查“if”函数吗?

将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);
    }
});
这样,每当计数器递增时,它都会被检查

重置计数器时,您还需要重置它:

reset.setOnClickListener(new View.OnClickListener() {

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

您的代码无法工作,因为只有在第一次创建活动时才会调用
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");
         }
      });