0

我正在努力在button单击时启用禁用。我知道这听起来很奇怪,但让我解释一下:当index等于 -1时,button应该禁用。如果index大于 -1,button则应启用。问题是当我点击禁用button并且index大于-1时,button它仍然被禁用。我试过btn.setOnclicklister(null)了,但没有用。

编码:

 btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    if (index == -1){
                        btn.setOnClickListener(null);
                        btn.setEnabled(false);
                        btn.setClickable(false);


                    }else if (index > -1){

                       btn.setOnClickListener(this);
                        btn.setEnabled(true);
                        btn.setClickable(true);

                    }


                }
            });
4

1 回答 1

1

OnClickListener每次设置index为非 -1时都应启用:

View.OnClickListener listener = new View.OnClickListener() {
  @Override
  public void onClick(View v) {
     // do something helpful you want on click
     // and disable the button
      if (index == -1){
         btn.setOnClickListener(null);
         btn.setEnabled(false);
         btn.setClickable(false);
     }
  }
}

在某处:

...
index = 1;
btn.setOnClickListener(listener);
btn.setEnabled(true);
btn.setClickable(true);
...
于 2019-06-30T19:31:18.920 回答