希望问题能说明一切...我一直在网上寻找一个简单的解决方案,我很惊讶地发现没有这种解决方案?我希望这是我可以添加到XML文件中的基本功能?欢迎使用替代方案,但我已经知道它们已经存在了。我只想知道这种简单的方法是否可行(似乎无法在文档中找到任何东西,但谁知道)
最佳答案
没有任何默认方法可以执行此操作。但是使用onTouch()事件来完成此操作相当容易。以下代码将从您触摸按钮开始每0.5秒重复执行一次任务。释放按钮时,任务将被取消。
Handler repeatedHandler = new Handler();
Runnable newRunnable = new Runnable() {
@Override
public void run() {
//Code for the task that needs to be repeated
//...
//...
repeatedHandler.postDelayed(newRunnable, 500);
}
};
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
repeatedHandler.postDelayed(newRunnable, 500);
break;
case MotionEvent.ACTION_UP:
repeatedHandler.removeCallbacks(newRunnable);
break;
}
}
});