Как реализовать событие двойного щелчка в Android без использования детектора жестов?
Событие двойного щелчка в Android
comment
Что такое двойной клик на экране мобильного?
- person Pentium10   schedule 14.07.2010
comment
Почему нельзя использовать детектор жестов?
- person Janusz   schedule 14.07.2010
Ответы (5)
Если вы имеете в виду двойное касание, вы должны использовать GestureDetector.OnDoubleTapListener.
person
Robby Pond
schedule
14.07.2010
Я уверен, что весь код там определяет, был ли второй щелчок в течение определенного времени после первого щелчка, в противном случае рассматривайте его как второй щелчок. Я бы во всяком случае так поступил.
person
the_dirty_burger
schedule
08.09.2011
просто используйте setOnTouchListener для записи времени первого и второго щелчка. Если они очень близко, определите это как двойной щелчок. Как это,
public class MyActivity extends Activity {
private final String DEBUG_TAG= "MyActivity";
private long firstClick;
private long lastClick;
private int count; // to count click times
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button mButton= (Button)findViewById(R.id.my_button);
mButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
// if the second happens too late, regard it as first click
if (firstClick != 0 && System.currentTimeMillis() - firstClick > 300) {
count = 0;
}
count++;
if (count == 1) {
firstClick = System.currentTimeMillis();
} else if (count == 2) {
lastClick = System.currentTimeMillis();
// if these two clicks is closer than 300 millis second
if (lastClick - firstClick < 300) {
Log.d(DEBUG_TAG,"a double click happened");
}
}
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
});
}
}
person
wuliang8910
schedule
12.12.2014
Вот смотрите, это библиотека в jar для прослушивания сенсорных жестов, внедряйте и работайте ) zНажмите
person
Nikolay Kolomiytsev
schedule
09.03.2015
Посмотрите исходный код для GestureDetector
и скопируйте нужные вам биты (в частности, посмотрите на метод isConsideredDoubleTap
)
person
oli
schedule
14.07.2010
я использую приложение диаграммы, если я щелкну точку для двойного щелчка, он перейдет к другому действию. если я использую детектор жестов, если я щелкну где угодно, он перейдет к другому действию
- person user386430; 16.07.2010