如何使用代码模拟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()不同的是,这只会调用监听器,不会执行任何关联的单击操作,如报告可访问性事件。