Я могу обнаружить длинный щелчок на моем WebView, используя следующий код:
webView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.d("Debug","On Long Press Web View");
return false;
}
});
Это прекрасно работает, когда я долго нажимаю на ссылку, но не работает, когда я долго нажимаю в области, где нет ссылки, то есть пробел.
Моей первой мыслью для решения этой проблемы было использование GestureDetector:
public boolean dispatchTouchEvent(MotionEvent event) {
super.dispatchTouchEvent(event);
return detector.onTouchEvent(event);
}
или
public OnTouchListener otl = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (detector.onTouchEvent(event)){
return true;
}else{
return false;
}
}
};
А затем переопределить метод onLongPress в GestureDetector:
public void onLongPress(MotionEvent e) {
}
Любой из вышеперечисленных методов работает, и метод onLongPress выполняется, когда я долго нажимаю на веб-страницу, но не на ссылку. Проблема заключается в том, что когда я теперь долго нажимаю на ссылку, вызываются оба метода длинного нажатия, во-первых, GestureDetector onLongPress, а затем WebView onLongClick. Есть ли способ просто вызывать только WebView onLongClick (), когда я долго нажимаю на ссылку.
Andy