我可以以编程方式单击按钮以获得预定义的意图吗?

Posted

技术标签:

【中文标题】我可以以编程方式单击按钮以获得预定义的意图吗?【英文标题】:Can I click a button programmatically for a predefined intent? 【发布时间】:2011-08-07 18:48:24 【问题描述】:

我需要点击意图 ACTION_SEND 的按钮。 这里不需要显示 UI。 我可以从 android 中的 MMS-SMSProvider 中获取“发送”按钮吗?

【问题讨论】:

【参考方案1】:

您可以使用button.performClick() 方法以编程方式单击按钮。

【讨论】:

提示:使用 findViewById(R.id.your_button_id); 引用您的按钮;【参考方案2】:

如果您的按钮包含任何动画,则您需要执行单击,然后在 performClick 之后使每个步骤无效。方法如下:

 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

【讨论】:

【参考方案3】:
button.callOnClick();

这个也可以用

【讨论】:

要求 API 级别 15 或更高 callOnClick() 不会发出我需要的咔哒声。当performClick() 发出声音时。

以上是关于我可以以编程方式单击按钮以获得预定义的意图吗?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式添加带有约束的 UITextField

我可以以编程方式触发淘汰视图模型更新吗?

以编程方式设置按钮样式

我们可以以编程方式注销 facebook

在 iOS 7 上以编程方式安装 .mobileconfig 文件

单击以编程方式定义的 NSPopUpButton 时出错