Не удается включить нажатую отключенную кнопку в Android

Я изо всех сил пытаюсь включить отключенный 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);

                    }


                }
            });

person Creesch 2.0    schedule 30.06.2019    source источник


Ответы (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);
...
person S-Sh    schedule 30.06.2019