Posso clicar em um botão programaticamente para um intent predefinido?

103

Preciso do clique no botão do intent ACTION_SEND. Aqui, não há necessidade de exibir a IU. Posso obter o clique do botão "Enviar" no MMS-SMSProvider no Android?

informação
fonte

Respostas:

241

Você pode clicar em um botão programaticamente usando o button.performClick()método.

Nirav Bhandari
fonte
46

Se o seu botão incluir qualquer animação, você precisará executar o clique e, em seguida, invalidar cada etapa após performClick. Veja como:

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

Ocasionalmente, também tive que introduzir um atraso para que a animação fosse exibida. Como isso:

 //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
PeteH
fonte
5
button.callOnClick();

este também pode ser usado

Instantâneo
fonte