I have the following struktur to implement an longclicklistener. It works if I click on a text on the webview which contains a htm开发者_JS百科l-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);
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;
}
});
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;
}
}
精彩评论