2012-02-28 2 views
2

Мне нужно получить выделенный текст из веб-представления и постоянно выделять текст. Я попытался выбрать текст, и пока я пытаюсь получить текст, используя буфер обмена, он показывает мне исключение нулевого указателя в «clipboard.getText()». Я попытался код, какКак получить выделенный текст в андроиде webview

ClipboardManager mClipboard = 
     (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 

KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, 
                KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0); 
shiftPressEvent.dispatch(webview); 
if(mClipboard!=null) 
    { 
     String text = mClipboard.getText().toString(); 
     Toast.makeText(this, "select_text_now  "+text, Toast.LENGTH_LONG).show(); 
    } 

Мне нужно, чтобы получить выбранный текст выделить futher..please помочь мне ..

+0

журнал ошибок был бы оценен – Triode

+0

Исключительное исключение его в String text = mClipboard.getText(). ToString(); – deepa

+0

mClipboard.getText(), если этот doen't не содержит каких-либо значений, то он будет через исключение nu-точки, возможно, вы можете установить условие if, чтобы проверить идентификатор метода getText(), возвращающий строку, или нет, исправьте меня, если я ошибаюсь – Triode

ответ

1

Я подал Android ошибку для этого: Issue 24842: WebView should make getSelection public. Если вы посмотрите на билет, вы увидите несколько обходных решений.

Обратите внимание, что код, который вы опубликовали, примерно похож на emulateShiftHeld, который устарел в 4.0, что, вероятно, поэтому работает в версии 2.2, а не в 4.0.

+0

Любая другая альтернатива, чтобы получить выбранное слово с именем тега и идентификатором в веб-обозревателе Android. – Ravi