如何使用代码模拟按钮单击?

sam*_*sam 209 android onclick

如何使用Android中的代码触发按钮点击事件?我想在其他事件发生时以编程方式触发按钮.

我面临同样的问题

public void onDateSelectedButtonClick(View v){
    /*Something  Alarm Management 
    http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
    copied code from this site*/
}
Run Code Online (Sandbox Code Playgroud)

按钮代码:

<Button
    android:onClick="onDateSelectedButtonClick"
    android:text="Set notification for this date" />
Run Code Online (Sandbox Code Playgroud)

但我想在没有OnClickEvent的情况下调用该函数OnLoadLayout

moo*_*ese 434

有一个更好的办法.

View.performClick();
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/reference/android/view/View.html#performClick()

这应该回答你所有的问题.每个View都继承了这个功能,包括Button,Spinner等.

  • 这个答案中显示的代码有点令人困惑.只是为了澄清,View没有静态的performClick()方法.您必须在View实例上调用performClick(). (13认同)
  • 手机上的后退按钮没有"查看"功能.你需要使用关键的监听器来获得那些按钮.这完全是一个不同的问题. (4认同)
  • @moon - 如果你想让人们收到你的评论通知,请用"@"和你想要通知的用户的前几个字母开始....(评论帖子的作者自动得到通知,但是评论者做了不) (3认同)
  • 如果你不知道你在做什么,那只会让人感到困惑. (3认同)
  • 但是View for Android的后退按钮是什么? (2认同)

小智 51

只是为了澄清moonlightcheese所说的内容:要通过Android中的代码触发按钮点击事件,请提供以下信息:

buttonName.performClick();
Run Code Online (Sandbox Code Playgroud)


Tus*_*aha 11

你可以这样做

private Button btn;
btn = (Button)findViewById(R.id.button2);
btn.performClick();
Run Code Online (Sandbox Code Playgroud)


Cha*_*ere 7

在我的经验中,Android callOnClick()(在API 15中添加)有时可能是更好的选择performClick().如果用户启用了选择声音,则performClick()可能导致用户听到两个连续的选择声音,这些声音在某种程度上彼此叠加,这可能是刺耳的.(一个选择声音用于用户的第一个按钮单击,然后另一个用于OnClickListener您通过代码调用的另一个按钮.)


Dee*_*rma 7

只需编写这段简单的代码: -

button.performClick();
Run Code Online (Sandbox Code Playgroud)

其中button是Button类的引用变量,定义如下: -

private Button buttonToday ;
buttonToday = (Button) findViewById(R.id.buttonToday);
Run Code Online (Sandbox Code Playgroud)

而已.


Col*_*ral 5

从API15开始,您还可以使用callOnClick()直接调用附加视图OnClickListener的方法。与performClick()不同,此方法仅调用侦听器,而不执行任何相关的单击操作,例如报告可访问性事件。