如何在单击按钮时禁用按钮,并在android中单击另一个按钮后再次启用它

时间:2016-03-28 07:53:17

标签: android button

我的问题是如何在单击按钮时禁用按钮,并在单击另一个按钮后再次启用它。 例如,当我点击按钮1时有4个按钮,它将被禁用,当我点击按钮2时,按钮2将被禁用,按钮1将再次启用。

目前我正在使用此代码,但一旦点击它就无法启用按钮。

Button.OnClickListener btnOnClickListner = new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (v == btn1) {
            if (v.isEnabled()) {
                v.setEnabled(false);
            }
          // my code
         } else if (v == btn2) {
            if (v.isEnabled()) {
                v.setEnabled(false);
            }
          // my code
        } else if (v == btn3) {
            if (v.isEnabled()) {
                v.setEnabled(false);
            }
          // my code
        } else if (v == btn4) {
            if (v.isEnabled()) {
                v.setEnabled(false);
            }
          // my code
        }

3 个答案:

答案 0 :(得分:1)

使用btn2.setEnabled(true);

Button.OnClickListener btnOnClickListner = new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (v == btn1) {
            if (v.isEnabled()) {
                v.setEnabled(false);
                btn2.setEnabled(true);
                btn3.setEnabled(true);
                btn4.setEnabled(true);
            }
          // my code
         } else if (v == btn2) {
            if (v.isEnabled()) {
                v.setEnabled(false);

                btn1.setEnabled(true);
                btn3.setEnabled(true);
                btn4.setEnabled(true);
            }
          // my code
        } else if (v == btn3) {
            if (v.isEnabled()) {
                v.setEnabled(false);

                btn1.setEnabled(true);
                btn2.setEnabled(true);
                btn4.setEnabled(true);
            }
          // my code
        } else if (v == btn4) {
            if (v.isEnabled()) {
                v.setEnabled(false);

                btn1.setEnabled(true);
                btn3.setEnabled(true);
                btn4.setEnabled(true);
            }
          // my code
        }

答案 1 :(得分:1)

对于其他按钮,只需setEnabled(true),如下所示:

Button.OnClickListener btnOnClickListner = new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (v == btn1) {
            if (v.isEnabled()) {
                v.setEnabled(false);
                btn2.setEnabled(true);
                btn3.setEnabled(true);
                btn4.setEnabled(true);
            }
          // my code
         } else if (v == btn2) {
            if (v.isEnabled()) {
                v.setEnabled(false);

                btn1.setEnabled(true);
                btn3.setEnabled(true);
                btn4.setEnabled(true);
            }
          // my code
        } else if (v == btn3) {
            if (v.isEnabled()) {
                v.setEnabled(false);

                btn1.setEnabled(true);
                btn2.setEnabled(true);
                btn4.setEnabled(true);
            }
          // my code
        } else if (v == btn4) {
            if (v.isEnabled()) {
                v.setEnabled(false);

                btn1.setEnabled(true);
                btn3.setEnabled(true);
                btn4.setEnabled(true);
            }
          // my code
        }

答案 2 :(得分:1)

试试这个

// Create a global button variable
Button flagButton = null;

Button.OnClickListener btnOnClickListner = new Button.OnClickListener() {
    @Override
    public void onClick(View v) {

        if(flagButton == null)
            flagButton = (Button)v;
        else
            flagButton.setEnabled(true);

        v.setEnabled(false);
        flagButton = (Button)v;

        if (v == btn1)
          // my code
        else if (v == btn2)
          // my code
        else if (v == btn3)
          // my code
        else if (v == btn4)
          // my code
        }
}