Kann ich programmgesteuert auf eine Schaltfläche klicken, um eine vordefinierte Absicht zu erhalten?


103

Ich brauche den Button-Klick der Absicht ACTION_SEND. Hier muss die Benutzeroberfläche nicht angezeigt werden. Kann ich den Klick "Senden" vom MMS-SMSProvider in Android erhalten?

Antworten:


241

Mit der button.performClick()Methode können Sie programmgesteuert auf eine Schaltfläche klicken .


46

Wenn Ihre Schaltfläche eine Animation enthält, müssen Sie den Klick ausführen und dann jeden Schritt nach performClick ungültig machen. Hier ist wie:

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

Gelegentlich musste ich auch eine Verzögerung einführen, damit die Animation angezeigt wird. So was:

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

5
button.callOnClick();

Dieser kann auch verwendet werden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.