【问题标题】:How to get the selected text in android webview如何在android webview中获取选定的文本
【发布时间】:2012-03-17 21:06:10
【问题描述】:

我需要从 webview 中获取选定的文本,并且必须永久突出显示文本。我尝试选择文本,当我尝试使用剪贴板获取文本时,它在“clipboard.getText()”处显示空指针异常。我试过代码为

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

我需要获取选定的文本以进一步突出显示..请帮助我..

【问题讨论】:

  • 错误日志将不胜感激
  • 它的空指针异常在 String text = mClipboard.getText().toString();
  • mClipboard.getText() 如果它不包含任何值,那么它将通过 nu 点异常,可能你可以设置一个 if 条件来检查 getText() 方法 id 是否返回一个字符串,如果我错了,请纠正我
  • 空指针异常发生在 Android4.0 但在 android2.2 中显示正确。我不知道为什么会这样..
  • 字符串文本 = (mClipboard.getText() != null) ? mClipboard.getText().toString() : "";这不是您的问题的解决方案,但可以避免空点异常,谢谢

标签: android webview highlight


【解决方案1】:

我为此提交了一个 Android 错误:Issue 24842: WebView should make getSelection public。如果您查看票证,您会看到一些不同的解决方法。

请注意,您发布的代码与 4.0 中已弃用的 emulateShiftHeld 大致相似,这可能是它在 2.2 而不是 4.0 中工作的原因。

【讨论】:

  • 在 android webview 中获取带有标签名称和 id 的选定单词的任何另一种方法
猜你喜欢
  • 2015-04-02
  • 1970-01-01
  • 2014-03-04
  • 2016-11-25
  • 2012-03-23
  • 1970-01-01
  • 2018-01-18
  • 2011-08-28
相关资源
最近更新 更多