androidbuttonisenableddisable

Can't enable clicked disabled button in android


I'm struggeling to enable a disabled button when it's clicked. I know it sounds weird, but let me explain: when index equals -1 the button should be disabled. If index is greater than -1 the button should be enabled. The problem is when I click on the disabled button and index is greater than -1, the button is still disabled. I tried btn.setOnclicklister(null), but it didn't work.

the code:

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

                    }


                }
            });

Solution

  • You should enable OnClickListener every time you set index to not -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);
         }
      }
    }
    

    And somewhere:

    ...
    index = 1;
    btn.setOnClickListener(listener);
    btn.setEnabled(true);
    btn.setClickable(true);
    ...