2011-01-11 41 views
4

我有以下struktur來實現一個longclicklistener。如果我點擊一個包含html-link的webview上的文本,它就可以工作,所以我知道這個結構並不完全錯誤。onLongClickListener無法在WebView上工作

我現在刪除了這個鏈接,聽衆只是不聽點擊了。有人知道這個問題,並有一些建議?

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

...

mywebview.setOnLongClickListener(mLongClickHandler); 
+0

該事件可能會在webview內容到達實際的webview之前被使用。 – Falmarri 2011-01-11 15:41:37

回答

3

我現在嘗試自己克隆longclick行動。這有效,但只有幾次。經過一段時間後,onTouch-Event不再被調用......建議?

private Runnable copyTextAfterDelay=new Runnable() { 
    public void run() { 
     ... 
    } 
}; 

...

您的WebView的
 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;     
      } 
      }); 
3

覆蓋onTouch梅索德和ACTION_DOWN事件返回true。因此,你消耗你的下降事件。

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