Я разрабатываю приложение для Android с функцией перетаскивания. В моем приложении есть имя кнопки buttonOne
. Некоторое время я хочу нажать кнопку, и некоторое время я хочу перетащить кнопку. Итак, я использую setOnTouchListener
. Когда я перетаскиваю или дважды щелкаю (или прикосновением), число щелчков кнопки показывает больше, чем раз. Например, когда я перетаскиваю кнопку, я хочу показать счетчик. Но это показывает больше одного. Некоторое время это происходит при нажатии на мой код, показанный ниже.Android on set touch listener показывает multi touch
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 не полезен. – Fazil
в пользовательском интерфейсе вы используете кнопку перетаскивания вправо/ –