¿Puedo hacer clic en un botón mediante programación para una intención predefinida?


103

Necesito el clic del botón de la intención ACTION_SEND. Aquí no es necesario mostrar la interfaz de usuario. ¿Puedo hacer clic en el botón "Enviar" desde MMS-SMSProvider en Android?

Respuestas:


241

Puede hacer clic en un botón mediante programación mediante el button.performClick()método.


46

Si su botón incluye alguna animación, deberá realizar el clic y luego invalidar cada paso después de performClick. Así es cómo:

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

En ocasiones también tuve que introducir un retraso para que se mostrara la animación. Me gusta esto:

 //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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.