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?

Respostas:


241

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


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.