Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to disable button as soon as its clicked

Tags:

android

button

I have a button which on Click loads another activity, but before it loads another Activity if i tap it continuously, then it launches the activity but the same activity is loaded two times or more. I have tried button.setEnabled(false) soon after button.setOnClickListener...onClick but that is not disabling the button, i am also logging a text as soon as the button is tapped, thus depending on my taps it logs the text 2 or 3 times even if i had tapped it 10 times. What i feel here is before the button can listen to tap events, i am tapping it so fast that it listens to all those events as many times as i tap it.

Thus i need something where the button can just listen one tap and then disable it.

please help

like image 915
Ali Ashraf Avatar asked Jun 14 '12 11:06

Ali Ashraf


2 Answers

Its known issue.Basically u can set the flag.

int flag=1;

 @Override
        public void onClick(View v) 
           {

                if(flag)
                 {
                   button.setEnabled(false);
                   Log.d("ins", "called");
                 }
                flag=0;
            }
like image 111
Vipul Avatar answered Sep 28 '22 01:09

Vipul


more preferred solution is,

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

myWork(){
 //your tasks.
 btn.setEnabled(true);
 btn.setClickable(true);
}
like image 30
Narasimha Avatar answered Sep 28 '22 00:09

Narasimha