2012-05-04 39 views
27

我正在使用webview在Android Honeycomb(3.x)中顯示內容。我創建了用於剪切,複製和粘貼的自定義操作菜單。如何使用我自定義的操作菜單在Webview中複製選定的文本。在Web視圖中選擇Android文本

+0

這可能是幫助... http://stackoverflow.com/questions/1111844/selecting-text-in-a-webview – Ronnie

+2

做了回答幫你?那麼請接受它。如果不是,請解釋什麼還不行。 –

回答

8

也許這將有助於...

public void selectAndCopyText() { 
try { 
    Method m = WebView.class.getMethod("emulateShiftHeld", null); 
    m.invoke(this, null); 
} catch (Exception e) { 
    e.printStackTrace(); 
    // fallback 
    KeyEvent shiftPressEvent = new KeyEvent(0,0, 
     KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0); 
    shiftPressEvent.dispatch(this); 
} 

}

https://stackoverflow.com/a/1113204/638987

+0

它適用於Android 3.2!有些人在emulateShiftHeld中回答了建議的布爾參數---這是不正確的!在上面的代碼中使用「null」,它會爲你工作! –

+0

Anroid 4.0.3 m.invoke(webView,null)導致本機崩潰'09-21 23:20:49.151:A/libc(4103):致命信號11(SIGSEGV)在0x00000014(代碼= 1)'。 –

-2

嘗試了下面的代碼...

private void emulateShiftHeld(WebView view) 
{ 
    try 
    { 
     KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, 
               KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0); 
     shiftPressEvent.dispatch(view); 
     Toast.makeText(this, "select_text_now", Toast.LENGTH_SHORT).show(); 
    } 
    catch (Exception e) 
    { 
     Log.e("dd", "Exception in emulateShiftHeld()", e); 
    } 
} 

,並調用上面的方法,無論你想...

emulateShiftHeld(mWebView); 

有關詳細信息,請參閱本... Android: how to select texts from webview

+0

這是Android 2.2的代碼。 Surej發佈了適用於Android 2.2和3.2的代碼,但這仍然是Android 4. *(Ice Cream Sandwich)的問題。上面的代碼在冰淇淋三明治下沒有做任何事情。 –