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数组。