int mLastMotionX, mLastMotionY;
boolean isLongPress;
boolean isMoved;
Runnable mLongPressRunnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_main);
mLongPressRunnable = new Runnable() {
@Override
public void run() {
handler.sendMessage(handler.obtainMessage(Util.LONG_PRESS));
}
};
}
private Handler handler = new Handler(new Callback() {
@Override
public boolean handleMessage(Message msg) {
// TODO Auto-generated method stub
switch (msg.what) {
case Util.LONG_PRESS:
// new AlertDialog.Builder(MainActivity.this)
// .setMessage("this is " + in1[currentViewTagPosition])
// .setPositiveButton("OK", null).show();
new AlertDialog.Builder(MainActivity.this).setMessage("Test")
.setPositiveButton("OK", null).show();
break;
default:
break;
}
return false;
}
});
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
int x = (int) event.getX(0);
int y = (int) event.getY(0);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isLongPress = false;
isMoved = false;
mLastMotionX = x;
mLastMotionY = y;
handler.postDelayed(mLongPressRunnable, 1000);
break;
case MotionEvent.ACTION_MOVE:
if (isMoved)
break;
if (Math.abs(mLastMotionX - x) > Util.TOUCH_RANGE
|| Math.abs(mLastMotionY - y) > Util.TOUCH_RANGE) {
isMoved = true;
handler.removeCallbacks(mLongPressRunnable);
}
break;
case MotionEvent.ACTION_UP:
handler.removeCallbacks(mLongPressRunnable);
break;
default:
break;
}
return super.dispatchTouchEvent(event);
}