2017-07-17 1 views
1

Wenn ich zum ersten Mal auf eine Schaltfläche zum erneuten Senden klicken, wird die Schaltfläche für 2 Sekunden deaktiviert.Nach 2 Sekunden aktiviert die Schaltfläche? Ich verwende diesen CodeDeaktivieren Sie die Schaltfläche nach einem Klick für 2 Sekunden und wieder zurück

btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      btn.setEnabled(false); 
      btn.postDelayed(new Runnable() { 
       public void run() { 
        btn.setEnabled(true); 
        Log.d(TAG,"resend1"); 
       } 
      },1000); 
     } 
    }); 

Aber dieser Code funktioniert nicht richtig.

Antwort

2

versuchen, dies zu diesem Zweck können Sie verwenden Handler (import android.os.Handler;)

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

    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      // This method will be executed once the timer is over 
       btn.setEnabled(true); 
       Log.d(TAG,"resend1"); 

     } 
    },2000);// set time as per your requirement 
    } 
}); 
+1

Dank bro seine Arbeit –

+0

@VivekAnnamlai sehr willkommen –

1

Sie einen Timer für dieses

können
btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       myButton.setEnabled(false); 

    Timer buttonTimer = new Timer(); 
    buttonTimer.schedule(new TimerTask() { 

     @Override 
     public void run() { 
      runOnUiThread(new Runnable() { 

       @Override 
       public void run() { 
        myButton.setEnabled(true); 
       } 
      }); 
     } 
    }, 5000); 
      } 
     }); 
0

Finden Sie die Lösung

  1. In Ihrem Taste Klicken Sie auf

    long mLastClickTime; 
    yourButton.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         disableButtonTwoSecs(); 
         // Here your implementation 
    
        } 
    }); 
    
    public static boolean disableButtonTwoSecs() { 
    if (SystemClock.elapsedRealtime() - mLastClickTime < 2000) { 
        return true; 
    } 
    mLastClickTime = SystemClock.elapsedRealtime(); 
    return false; 
    } 
    
+0

Dank Rajasekhar .... –

Verwandte Themen