숫자가 텍스트 인 응용 프로그램의 단추가 있습니다. 버튼을 일정한 순서로 누르면 버튼의 숫자가 바뀌고 버튼이 다시 눌러지며 숫자가 바뀌면서 사이클이 계속됩니다. 이것은 처음으로 작동하지만 숫자가 바뀌면 눌려지는 것이 아무 것도 아닌 것처럼 보입니다.단추가 Android에서 응답하지 않습니다.
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 메서드가 응용 프로그램의 시작에서만 실행된다는 사실과 관련이 있다고 생각합니다. 내 버튼의 프레스가 계속 반응하도록하려면 어떻게해야합니까?
@codePG 그게 너를 혼란스럽게한다면, 나는 그 부분을 꺼내야 만했을 것이다. 버튼을 눌렀을 때 (예 : 색상 변경) 발생하는 다른 것들은 두 번째로 발생하지 않습니다. – RainbowJeremy