如何调用按钮事件监听器。甚至没有点击?

时间:2013-05-14 23:56:11

标签: java android performance android-emulator event-listener

我有按钮事件监听器,其中有一些操作在其中工作正常。我想执行那个事件监听器,即使我没有按下那个按钮,我的意思是执行一个普通的方法。因为我不想复制和粘贴相同的代码。我该怎么办?

谢谢!

4 个答案:

答案 0 :(得分:2)

您创建的匿名类可以访问周围类中的方法。我假设您有一个活动,其代码如下:

Button button = (Button) findViewById(R.id.mybutton);
button.setOnClickListener(new View.OnClickListener() {
  public void onClick(View v) {
    // do stuff here
  }
});

相反,请在您的活动中添加一个方法,例如private void doButtonStuff()。然后设置OnClickListner,以便onClick方法如下所示:

public void onClick(View v) {
  doButtonStuff();
}

现在您可以在不必触发侦听器的情况下调用doButtonStuff()

或者,您可以以编程方式单击按钮:

Button button = ...
button.performClick()

这将触发附加的OnClickListener,并使其外观和声音就像单击按钮一样。我认为将代码提取到方法中听起来像是一种更好的解决方案。

答案 1 :(得分:2)

致电

View.performClick();

答案 2 :(得分:1)

如果你想这样做,最好的方法是将所有放在eventlistener中的动作放在一个方法中,然后在你想要的事件中在eventlistener和outside之外调用这个方法。这是最好的方法,因此您可以在任何地方使用此操作。希望这有帮助!

答案 3 :(得分:0)

在Java8中我发现以编程方式点击了#39;是:

buttonName.doClick();

而不是

buttonName.performClick();