我想知道如何制作多个按钮,这些按钮能够在经过一定量的点击后返回。当我点击第三个不正确的按钮时,它不会返回。请有人告诉我哪里出错了。 在第三次尝试之后它应该关闭活动
private boolean answer = false;
private int turnsLeft = 0;
Button btn1;
Button btn2;
Button btn3;
Button btn4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cat);
btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(this);
btn2 = (Button) findViewById(R.id.btn2);
btn2.setOnClickListener(this);
btn3 = (Button) findViewById(R.id.btn3);
btn3.setOnClickListener(this);
btn4 = (Button) findViewById(R.id.btn4);
btn4.setOnClickListener(this);
}
public void onClick (View view){
switch (view.getId()){
case R.id.btn1: {
Intent intent = new Intent(Cat.this,Congratulations.class);
startActivity(intent);
break;
}
case R.id.btn2: {
animalButtonClicked(btn2,turnsLeft);
break;
}
case R.id.btn3: {
animalButtonClicked(btn3,turnsLeft);
break;
}
case R.id.btn4: {
animalButtonClicked(btn4,turnsLeft);
break;
}
default:{
break;
}
}
}
private int animalButtonClicked(Button button, int count){
button.setEnabled(false);
count++;
if(count == 3){
count = 0;
finish();
}
button.setEnabled(false);
return count;
}
答案 0 :(得分:0)
您正在将turnsLeft全局变量传递给该方法。但只增加局部变量" count"。它不会影响全局变量。所以turnsLeft总是为0.
为所有按钮单击更改您的代码,
animalButtonClicked(btn2, ++turnsLeft);
并从方法中删除行count++
。
另一种解决方案根本不是传递全局变量" turnsLeft"方法。由于它是一个全局变量,您可以直接在方法内访问变量turnsLeft,而不是使用局部变量" count"。