Java 在Android中以编程方式调用侦听器调用
我正在玩Android,我想知道是否有任何方法可以通过编程方式调用侦听器调用,例如,拥有一个Java 在Android中以编程方式调用侦听器调用,java,android,listener,onclicklistener,Java,Android,Listener,Onclicklistener,我正在玩Android,我想知道是否有任何方法可以通过编程方式调用侦听器调用,例如,拥有一个onClick()侦听器,并在创建活动时不触摸屏幕就调用此侦听器。无法获取设置OnClickListener。因此,您需要存储它并直接调用OnClickListener OnClickListener store = new OnClickListener() {/*...*/}; view.setOnClickListener(store); store.onClick(view); 虽然这是可能的,
onClick()
侦听器,并在创建活动时不触摸屏幕就调用此侦听器。无法获取设置OnClickListener
。因此,您需要存储它并直接调用OnClickListener
OnClickListener store = new OnClickListener() {/*...*/};
view.setOnClickListener(store);
store.onClick(view);
虽然这是可能的,但我还是反对。监听器应该从UI调用,但其背后的业务逻辑实际上应该直接调用。这将在两层之间提供“关注点分离”
您应该调用侦听器在其
onClick
方法中调用的代码,而不是直接调用onClick
。从未尝试过,但在将clickListener
分配给对象(例如按钮
)后,调用onCreate
方法myButton.performClick()
OnClickListener store = new OnClickListener() {/*...*/};
view.setOnClickListener(store);
store.onClick(view);
Android文档:
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.
检查这个:不知道你是否能在所有有听众的动作中做到。是的,我知道,但是有了这个小把戏,我节省了很多工作,我只需要在一个地方使用它,所以我认为它是可以的…谢谢你的回答。祝您有个美好的一天!您应该注意,这是在
视图中定义的,因此这应该适用于每个控件+1+1很好的技巧,但是在调用public boolean performClick()