Могу ли я нажать кнопку программно для предопределенного намерения? - PullRequest
93 голосов
/ 18 апреля 2011

Мне нужно нажать кнопку намерения ACTION_SEND.Здесь нет необходимости отображать пользовательский интерфейс.Можно ли получить кнопку «Отправить» с помощью MMS-SMSProvider в Android?

Ответы [ 3 ]

227 голосов
/ 18 апреля 2011

Вы можете нажать кнопку программным способом, используя метод button.performClick().

40 голосов
/ 01 апреля 2013

Если ваша кнопка содержит какую-либо анимацию, вам нужно будет выполнить щелчок, а затем сделать недействительным каждый шаг после executeClick.Вот как:

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

Иногда мне также приходилось вводить задержку, чтобы показать анимацию.Как это:

 //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
2 голосов
/ 04 октября 2018
button.callOnClick();

этот также можно использовать

...