Posso fare clic su un pulsante a livello di codice per un intento predefinito?


103

Ho bisogno del clic sul pulsante dell'intento ACTION_SEND. Qui non è necessario visualizzare l'interfaccia utente. Posso ottenere il clic sul pulsante "Invia" dal provider MMS-SMS in Android?

Risposte:


241

È possibile fare clic su un pulsante a livello di codice utilizzando il button.performClick()metodo.


46

Se il tuo pulsante include un'animazione, dovrai eseguire il clic e quindi invalidare ogni passaggio dopo performClick. Ecco come:

 button.performClick();
 button.setPressed(true); 
 button.invalidate(); 
 button.setPressed(false); 
 button.invalidate(); 

A volte ho anche dovuto introdurre un ritardo per far vedere l'animazione. Come questo:

 //initiate the button
 button.performClick();
 button.setPressed(true); 
 button.invalidate(); 
 // delay completion till animation completes
 button.postDelayed(new Runnable() {  //delay button 
     public void run() {  
        button.setPressed(false); 
        button.invalidate();
        //any other associated action
     }
 }, 800);  // .8secs delay time

5
button.callOnClick();

anche questo può essere utilizzato

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.