我正在尝试做一些非常简单的事情,但由于某种原因我无法让它工作。我有两个圆形按钮。
- 当我只需单击顶部(绿色)按钮时,我希望按钮切换颜色并保持这种状态。
- 如果我按住一个按钮 2 秒钟,我希望只要我按住按钮,颜色就会交换,但一旦我松开,就会恢复到原来的颜色。
我正在尝试使用 OnClickListener。我在两种情况下使用开关:MotionEvent.ACTION_DOWN 和 MotionEvent.ACTION_UP。(见下面的代码)
为了获得按钮被按住的持续时间,我在 while 循环中使用 System.currentTimeMillis() (当按钮被按住时)-->(如果 timeElapsed > 2000){切换颜色}
完整代码如下:
greenbutton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
startTime = System.currentTimeMillis();
while (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
currentTime = System.currentTimeMillis();
elapsedTime = currentTime - startTime;
if (elapsedTime > 500) {
if (switched) {
revertButtons();
return true;
} else {
switchButtons();
return true;
}
}
}
case MotionEvent.ACTION_UP:
if (switched) {
revertButtons();
elapsedTime = 0;
currentTime = 0;
startTime = 0;
return true;
} else {
switchButtons();
elapsedTime = 0;
currentTime = 0;
startTime = 0;
return true;
}
}
return false;
}
});
哆啦的时光机
长风秋雁
相关分类