web-dev-qa-db-fra.com

Puis-je cliquer sur un bouton par programmation pour une intention prédéfinie?

J'ai besoin du clic du bouton de l'intention ACTION_SEND. Ici, il n'est pas nécessaire d'afficher l'interface utilisateur. Puis-je obtenir le clic sur le bouton "Envoyer" du fournisseur MMS-SMSProvider sous Android?

93
info

Vous pouvez cliquer sur un bouton par programmation en utilisant la méthode button.performClick().

228
Nirav Bhandari

Si votre bouton inclut une animation, vous devez cliquer dessus puis invalider chaque étape après performClick. Voici comment:

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

À l'occasion, j'ai également dû introduire un délai pour que l'animation soit visible. Comme ça:

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

celui-ci peut aussi être utilisé

2
Flash