作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想让用户从 webview 中选择一些文本,它需要作为文本消息发送。请找到选择文本并复制到剪贴板并从剪贴板中提取的方法。我看到了很多例子,但没有什么能真正帮助我......TIA
编辑
使用来自 @orangmoney52 的链接中提供的代码。有以下变化
get方法的第二个参数和invoke方法的第二个参数。如果我给 null 会有警告..哪个是正确的?
public void selectAndCopyText() {
try {
Method m = WebView.class.getMethod("emulateShiftHeld", Boolean.TYPE);
m.invoke(BookView.mWebView, false);
} catch (Exception e) {
e.printStackTrace();
// fallback
KeyEvent shiftPressEvent = new KeyEvent(0,0,
KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
shiftPressEvent.dispatch(this);
}
}
出现此错误:
05-26 16:41:01.121: WARN/System.err(1096): java.lang.NoSuchMethodException: emulateShiftHeld
最佳答案
上面的答案看起来非常好,而且您在选择文本时似乎遗漏了一些东西。所以你需要仔细检查代码并找到你覆盖的任何 TouchEvent 的 webview。
我试过下面的代码,它工作正常......
函数是
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:如何从 WebView 中选择文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058843/
我是一名优秀的程序员,十分优秀!