mutlipe按钮选择android

时间:2016-05-02 12:26:18

标签: android button android-activity

我想知道如何制作多个按钮,这些按钮能够在经过一定量的点击后返回。当我点击第三个不正确的按钮时,它不会返回。请有人告诉我哪里出错了。 在第三次尝试之后它应该关闭活动

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;
}

1 个答案:

答案 0 :(得分:0)

您正在将turnsLeft全局变量传递给该方法。但只增加局部变量" count"。它不会影响全局变量。所以turnsLeft总是为0.

为所有按钮单击更改您的代码,

animalButtonClicked(btn2, ++turnsLeft);

并从方法中删除行count++

另一种解决方案根本不是传递全局变量" turnsLeft"方法。由于它是一个全局变量,您可以直接在方法内访问变量turnsLeft,而不是使用局部变量" count"。