我正在开发一个黑莓应用程序。当用户按下一个按钮并按住它 2 秒时,我想在同一屏幕上触发任何操作。
任何方式
谢谢
最佳答案
这是您在非常非正式的伪代码中需要做的:
When (click detected)
Schedule Timer to execute in 2s.
When (unclick detected)
Cancel timer
计时器在用户第一次点击它时被安排。如果用户按下按钮超过 2 秒,则计时器将运行。否则,当按钮在 2 秒前松开时,定时器被取消,不会运行。请注意,如果用户在 2 秒或更晚的时间释放,也可以取消定时器。在那些情况下这不是问题,因为如果它在运行时被取消,它会被允许完成,如果它在完成后被取消,它什么都不做。
要检测点击/取消点击,您有多种选择。您可以从按钮类扩展并覆盖 touchEvent
作为Peter建议,或者您可以覆盖 navigationClick
和 navigationUnclick
在您的 MainScreen
类中。由于您需要在每个按钮中执行此操作,我宁愿将 ButtonField 子类化以启用自定义点击/取消点击监听器,从而允许在其他屏幕中重用该类。
关于java - 黑莓按下 buttonfield n 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18886600/