gpt4 book ai didi

java - Android 中的按钮没有响应

转载 作者:行者123 更新时间:2023-12-01 22:31:48 25 4
gpt4 key购买 nike

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

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]) 相等时,条件始终为 falsenums 中的值是之前生成的值。

希望对您有所帮助!

关于java - Android 中的按钮没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27614034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com