【发布时间】:2017-02-14 13:19:42
【问题描述】:
我正在使用拖放功能开发一个 android 应用程序。在我的应用程序中,按钮名称为buttonOne。有时我想单击按钮,有时我想拖放按钮。所以,我使用setOnTouchListener。当我拖动或双击(或触摸)按钮单击计数显示多次。例如,当我拖动按钮时,我想显示计数。但它显示的不止一个。有时它会发生在单击下面显示的我的代码时。
imageButtonOne.setOnTouchListener(new OnTouchListener() {@Override public boolean onTouch(View v, MotionEvent event) {
//clicked =1;
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadow = new View.DragShadowBuilder(imageButtonOne);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
v.startDragAndDrop(data, shadow, v, 0);
} else {
v.startDrag(data, shadow, v, 0);
}
Log.d("LOGTAG", "Touched");
if(SystemClock.elapsedRealtime() - c < 1000) { // SystemClock is shows system time.
setPosition(position);
}
c=SystemClock.elapsedRealtime();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
break;
case MotionEvent.ACTION_UP:
float endX = event.getX();
float endY = event.getY();
if (isAClick(startX, endX, startY, endY)) {
Log.d("LockView", "clicked");
} else {}
break;
}
v.getParent().requestDisallowInterceptTouchEvent(true); //specific to my project
return false;
}
});
这里SystemClock.elapsedRealtime() 表示系统用于避免多点触摸响应。
但没有得到正确的结果如何解决?请帮帮我?
【问题讨论】:
-
你尝试过的。我想请使用 setonClickListener
-
我想使用拖放。所以,setonClickListener 没用。
-
在 UI 中,您可以使用右侧的拖放按钮 /
-
是的,我使用了拖放按钮。但我也想习惯点击按钮。
-
你是安卓开发新手?
标签: android drag-and-drop onclicklistener ontouchlistener