Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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_Button - Fatal编程技术网

Java Android中的按钮没有响应

Java Android中的按钮没有响应,java,android,button,Java,Android,Button,我的应用程序中有一些按钮,它们的文本是数字。当按特定顺序按下按钮时,按钮上的数字会发生变化,并且按钮应能够再次按下,并随着数字的变化继续循环。这是第一次,但当数字改变时,按下它们似乎没有任何作用 public class MainActivity extends Activity { int b1 = (int) (Math.random() * 100.0); int b2 = (int) (Math.random() * 100.0); int b3 = (int) (Math.rando

我的应用程序中有一些按钮,它们的文本是数字。当按特定顺序按下按钮时,按钮上的数字会发生变化,并且按钮应能够再次按下,并随着数字的变化继续循环。这是第一次,但当数字改变时,按下它们似乎没有任何作用

public class MainActivity extends Activity {

int b1 = (int) (Math.random() * 100.0);
int b2 = (int) (Math.random() * 100.0);
int b3 = (int) (Math.random() * 100.0);
int b4 = (int) (Math.random() * 100.0);
int last = 0;
int[] nums = { b1, b2, b3, b4 };
int i = 0;
String res = "";

Button button1, button2, button3, button4;

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

    button1 = (Button) findViewById(R.id.button1);
    button2 = (Button) findViewById(R.id.button2); 
    button3 = (Button) findViewById(R.id.button3);
    button4 = (Button) findViewById(R.id.button4);

    button1.setText(Integer.toString(b1));
    button2.setText(Integer.toString(b2));
    button3.setText(Integer.toString(b3));
    button4.setText(Integer.toString(b4));

    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int value = b1;
            checkOrder(value);
            TextView result = (TextView) findViewById(R.id.textView1);
            result.setText(res);
        }
    });

    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int value = b2;
            checkOrder(value);
            TextView result = (TextView) findViewById(R.id.textView1);
            result.setText(res);
        }
    });

    button3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int value = b3;
            checkOrder(value);
            TextView result = (TextView) findViewById(R.id.textView1);
            result.setText(res);
        }
    });

    button4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int value = b4;
            checkOrder(value);
            TextView result = (TextView) findViewById(R.id.textView1);
            result.setText(res);

        }
    });

}

private void checkOrder(int value) {
    if (value == nums[i]) {
        if (i == 3) {
            button1.setBackgroundResource(android.R.drawable.btn_default);
            button2.setBackgroundResource(android.R.drawable.btn_default);
            button3.setBackgroundResource(android.R.drawable.btn_default);
            button4.setBackgroundResource(android.R.drawable.btn_default);
            b1 = (int) (Math.random() * 100.0);
            b2 = (int) (Math.random() * 100.0);
            b3 = (int) (Math.random() * 100.0);
            b4 = (int) (Math.random() * 100.0);
            button1.setText(Integer.toString(b1));
            button2.setText(Integer.toString(b2));
            button3.setText(Integer.toString(b3));
            button4.setText(Integer.toString(b4));
            i = 0;

        } else {
            if (value == b1) {
                button1.setBackgroundColor(Color.GREEN);
            } else if (value == b2) {
                button2.setBackgroundColor(Color.GREEN);
            } else if (value == b3) {
                button3.setBackgroundColor(Color.GREEN);
            } else if (value == b4) {
                button4.setBackgroundColor(Color.GREEN);
            }
            i++;
        }
    } else {

    }
}

我认为这与onCreate方法只在应用程序开始时运行这一事实有关。我怎样才能让我的按键保持响应?

可能需要重新分配

int[] nums = { b1, b2, b3, b4 };
checkOrder
方法中为
b1、b2、b3、b4生成新值后

当您第二次尝试将if(value==nums[i])
等同于
if时,条件总是
false
nums
中的值是先前生成的值


我希望这有帮助

可能需要重新分配

int[] nums = { b1, b2, b3, b4 };
checkOrder
方法中为
b1、b2、b3、b4生成新值后

当您第二次尝试将if(value==nums[i])
等同于
if时,条件总是
false
nums
中的值是先前生成的值


我希望这有帮助

可能需要重新分配

int[] nums = { b1, b2, b3, b4 };
checkOrder
方法中为
b1、b2、b3、b4生成新值后

当您第二次尝试将if(value==nums[i])
等同于
if时,条件总是
false
nums
中的值是先前生成的值


我希望这有帮助

可能需要重新分配

int[] nums = { b1, b2, b3, b4 };
checkOrder
方法中为
b1、b2、b3、b4生成新值后

当您第二次尝试将if(value==nums[i])
等同于
if时,条件总是
false
nums
中的值是先前生成的值


我希望这有帮助

@codePG抱歉,如果这让你感到困惑,我可能应该把那部分删掉。按下按钮时应该发生的其他事情(例如改变颜色)在第二次到第二次都没有发生。@codePG抱歉,如果这让你感到困惑,我可能应该把那部分拿出来。按下按钮时应该发生的其他事情(例如改变颜色)在第二次到第二次都没有发生。@codePG抱歉,如果这让你感到困惑,我可能应该把那部分拿出来。按下按钮时应该发生的其他事情(例如改变颜色)在第二次到第二次都没有发生。@codePG抱歉,如果这让你感到困惑,我可能应该把那部分拿出来。当按下按钮时应该发生的其他事情(例如改变颜色)在第二次到第二次都没有发生。是的,这就是问题所在。当我更改b1、b2等的值时,我必须重新创建nums数组。是的,这就是问题所在。当我更改b1、b2等的值时,我必须重新创建nums数组。是的,这就是问题所在。当我更改b1、b2等的值时,我必须重新创建nums数组。是的,这就是问题所在。当我更改b1、b2等的值时,我不得不重新创建nums数组。