How to disable a button as soon as it is clicked

I have a button that on Click loads another action, but before it loads another action, if I press it continuously, then it starts the action, but the same action is loaded two or more times. I tried button.setEnabled (false) shortly after button.setOnClickListener ... onClick but it doesn’t turn off the button, I also register the text right after the button is pressed, so depending on my taps it registers the text 2 or 3 times, even if I pressed it 10 times. I feel that before the button listens for click events, I press it so fast that it listens to all these events as many times as I click on it.

So I need something where the button can just listen to one tap and then turn it off.

please, help

+5
source share
7 answers

Its a known issue. Basically you can set a flag.

int flag=1;

 @Override
        public void onClick(View v) 
           {

                if(flag)
                 {
                   button.setEnabled(false);
                   Log.d("ins", "called");
                 }
                flag=0;
            }
+7
source

more preferred solution is

onclick(){
  btn.setEnabled(false);
  btn.setClickable(false);
  //yourwork
  myWork();
}

myWork(){
 //your tasks.
 btn.setEnabled(true);
 btn.setClickable(true);
}
+4
source

-. , click , . , boolean,

private boolean handledClick = false;

public void onClick(View v){
    if (!handledClick){
        handledClick = true;
        startActivity(...);
    }
}

, onClick , ...

+2

, onClick() , button.setEnabled(false) . onResume(), onRestart() onWindowFocusChanged() , .

, ().

0

go , ,

 go.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
    //    your code here
          go.setEnabled(false);
        }
    });

EDIT: , .

s.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            s.setEnabled(false);
            if(flag == 1){
                flag=0;
                //your code here
            }
        }
    });
0

, :

int flag = 1;

 private OnClickListener btnNextActivity = new OnClickListener(){
    public void onClick(View v) {

            if(flag){
          Intent nextActivity = new Intent(getApplicationContext(),NextActivity.class);
          nextActivity.setClassName(". . .",". . ." );
          . . .
          startActivity(nextActivity);
          flag = 0;
            }

           else{
            Show Toast Message Here
              }
      }
};
0

Button.setEnabled(true/false) :

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (v.isEnabled()) {
                v.setEnabled(false);
            }
        }
    });

You can also check what is Buttonturned on or off by calling Button.isEnabled().


Read more about Button Read This ...

0
source

All Articles