onLongClickListener不适用于WebView

时间:2011-01-11 15:16:54

标签: android webview onlongclicklistener

我有以下的struktur来实现longclicklistener。如果我点击webview上包含html链接的文本,它就有效,所以我知道结构并不完全错误。

我现在删除了这个链接,听众只是不再听点击了。有人知道这个问题并有一些建议吗?

    private View.OnLongClickListener mLongClickHandler = new View.OnLongClickListener()   {
    @Override
    public boolean onLongClick(View view) {
        ...
        return true;
    }
};

...

mywebview.setOnLongClickListener(mLongClickHandler);

2 个答案:

答案 0 :(得分:3)

我现在尝试自己克隆longclick动作。这只能工作几次。一段时间后,onTouch-Event不再被调用...建议?

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;                  
            }
            });

答案 1 :(得分:3)

覆盖webview的onTouch方法,并为ACTION_DOWN事件返回true。 因此,你消耗你的羽绒事件。

  @Override
  public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) { 
         case MotionEvent.ACTION_DOWN:  
            return true;
      }
   }