如何使用代码模拟button点击?

如何使用Android中的代码触发button单击事件? 我想要在某些其他事件发生时以编程方式触发button点击。

同样的问题,我面对

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

button代码:

 <Button android:onClick="onDateSelectedButtonClick" android:text="Set notification for this date" /> 

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

有一个更好的办法。

 View.performClick(); 

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

这应该回答你所有的问题。 每个Viewinheritance这个函数,包括Button,Spinner等

只是为了澄清moonlightcheese所说的:通过Android中的代码触发button点击事件提供了以下内容:

 buttonName.performClick(); 

你可以这样做

 private Button btn; btn = (Button)findViewById(R.id.button2); btn.performClick(); 

根据我的经验,Android的callOnClick() ( 在API 15中添加 )有时可以是比performClick()更好的select。 如果用户启用了select声音,那么执行performClick()可能会导致用户听到两个连续的select声音,这些声音有点层叠在一起,可能会震动。 (用户第一个button点击一个select声音,然后另一个用于通过代码调用的另一个button的OnClickListener

只要写下这个简单的代码行:

 button.performClick(); 

其中button是Button类的引用variables,定义如下: –

 private Button buttonToday ; buttonToday = (Button) findViewById(R.id.buttonToday); 

而已。

如果你不使用sender参数,为什么不重构button处理程序实现来分离函数,并从你想要的地方(从button处理程序和其他地方)调用它。

无论如何,这是一个更好,更干净的devise – 需要在button处理程序上调用的代码,并从其他地方值得重构为自己的function。 另外,它将帮助您将UI处理与应用程序逻辑代码分开。 你也将有一个不错的名字,而不只是onDateSelectedButtonClick()。

从API15开始,您也可以使用callOnClick() ,它直接调用附加视图OnClickListener。 与performClick()不同的是,这只会调用监听器,不会执行任何关联的单击操作,如报告可访问性事件。