private boolean onTouched = false;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.iv_plus:
if (event.getAction() == MotionEvent.ACTION_BUTTON_PRESS ||
event.getAction() == MotionEvent.ACTION_DOWN||
event.getAction() == MotionEvent.ACTION_HOVER_ENTER||
event.getAction() == MotionEvent.ACTION_MASK||
event.getAction() == MotionEvent.ACTION_POINTER_DOWN||
event.getAction() == MotionEvent.ACTION_MOVE) {
onTouched = true;
onLongClicked = true;
} else {
onTouched = false;
onLongClicked = false;
}
break;
case R.id.iv_minus:
if (event.getAction() == MotionEvent.ACTION_BUTTON_PRESS ||
event.getAction() == MotionEvent.ACTION_DOWN||
event.getAction() == MotionEvent.ACTION_HOVER_ENTER||
event.getAction() == MotionEvent.ACTION_MASK||
event.getAction() == MotionEvent.ACTION_POINTER_DOWN||
event.getAction() == MotionEvent.ACTION_MOVE) {
onTouched = true;
onLongClicked = true;
} else {
onTouched = false;
onLongClicked = false;
}
break;
}
return false;
}
private boolean onLongClicked = false;
@Override
public boolean onLongClick(View v) {
switch (v.getId()) {
case R.id.iv_plus:
Thread t = new Thread() {
public void run() {
while (onLongClicked) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
changePrice1(true);
handler.sendEmptyMessage(0x01); //新开启的线程中不能修改UI界面,通过handler与UI线程交互
}
}
};
t.start();
break;
case R.id.iv_minus:
Thread t2 = new Thread() {
public void run() {
while (onLongClicked) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
changePrice1(false);
handler.sendEmptyMessage(0x01); //新开启的线程中不能修改UI界面,通过handler与UI线程交互
}
}
};
t2.start();
break;
default:
break;
}
// 这里返回true表示不触发onclick事件
return true;
}