问题
I have the following struktur to implement an longclicklistener. It works if I click on a text on the webview which contains a html-link, so I know the structure is not completely wrong.
I removed this link now and the listener just doesn't listen to clicks anymore. Does anybody know this problem and have some advices?
private View.OnLongClickListener mLongClickHandler = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
...
return true;
}
};
...
mywebview.setOnLongClickListener(mLongClickHandler);
回答1:
I tried now to clone the longclick action by myself. This works but only a few times. After a certain time, the onTouch-Event is not called anymore... Suggestions?
private Runnable copyTextAfterDelay=new Runnable() {
public void run() {
...
}
};
...
myWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mTimerHandler.removeCallbacks(copyTextAfterDelay);
mTimerHandler.postDelayed(copyTextAfterDelay,1000);
break;
case MotionEvent.ACTION_UP:
mTimerHandler.removeCallbacks(copyTextAfterDelay);
break;
case MotionEvent.ACTION_MOVE:
mTimerHandler.removeCallbacks(copyTextAfterDelay);
break;
}
return false;
}
});
回答2:
Override onTouch methode of your webview and return true for ACTION_DOWN events. Thereby you consume your down event.
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
return true;
}
}
来源:https://stackoverflow.com/questions/16937068/onlongclick-is-not-working-on-webview-os-4-1