Puis-je cliquer sur un bouton par programmation pour un intent prédéfini?

103

J'ai besoin du clic sur le 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» depuis le fournisseur MMS-SMS dans Android?

Info
la source

Réponses:

241

Vous pouvez cliquer sur un bouton par programme à l'aide de la button.performClick()méthode.

Nirav Bhandari
la source
46

Si votre bouton comprend une animation, vous devrez effectuer le clic, 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 diffusée. 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
PeteH
la source
5
button.callOnClick();

celui-ci peut également être utilisé

Éclat
la source