【发布时间】:2014-07-02 13:04:17
【问题描述】:
我想在一秒钟内添加 15 次数组。我使用过 Timer、Countdowntimer、handler,但不适用于 Button Action.Down 和 Action.Move。有什么帮助吗?
ArrayList<Integer> Xpos;
ArrayList<Integer> Ypos;
ArrayList<String> MarkerSelected;
private Handler handlerXYPos = new Handler();
Runnable runnableXYPos = null;
case MotionEvent.ACTION_DOWN:
handlerXYPos.post(runnableXYPos);
break;
case MotionEvent.ACTION_UP:
handlerXYPos.removeCallbacks(runnableXYPos);
break;
//=== case drag
case MotionEvent.ACTION_MOVE:
handlerXYPos.post(runnableXYPos);
break;
这个runnable执行15帧
runnableXYPos = new Runnable() {
@Override
public void run()
{
Xpos.add(xP);
Ypos.add(yP);
MarkerSelected.add(MarkerName);
handlerXYPos.postDelayed(runnableXYPos, 66); //convert 15 in milisec = 66
}
};
当我按下按钮时,此代码有效,有时会添加正确数量的值,但当我拖动手指时,它会添加额外的值。
【问题讨论】:
-
在每个 Motion 事件案例中添加日志,您将了解它是如何工作的。
标签: java android arraylist handler