5

我正在玩Android,我想知道是否有任何方法可以以编程方式调用侦听器,例如,在onClick()创建活动时有一个侦听器并调用对该侦听器的调用,而无需触摸屏幕。

4

3 回答 3

6

没有办法得到集合OnClickListener。所以你需要存储它并OnClickListener直接调用你的。

OnClickListener store = new OnClickListener() {/*...*/};
view.setOnClickListener(store);
store.onClick(view);
于 2013-04-15T08:14:29.710 回答
6

从未尝试过,但是在将 a 分配clickListener给您的对象(例如 a Button)之后,调用您的onCreate方法myButton.performClick()

安卓文档:

public boolean performClick ()

Added in API level 1
Call this view's OnClickListener, if it is defined. Performs 
all normal actions associated with clicking: reporting accessibility event, 
playing a sound, etc.

Returns
True there was an assigned OnClickListener that was called, 
false otherwise is returned.
于 2013-04-15T08:18:39.017 回答
0

尽管这是可能的,但我实际上建议不要这样做。应该从 UI 调用侦听器,但实际上应该直接调用它背后的业务逻辑。这将在两层之间提供“关注点分离”。

您应该调用侦听器在其onClick方法中调用的代码,而不是onClick直接调用。

于 2013-04-15T08:16:05.527 回答