我能够使用以下方法获取所选文本:
webview.evaluateJavascript("(function(){return window.getSelection().toString()})()",
new ValueCallback<String>()
{
@Override
public void onReceiveValue(String value)
{
selected = value;
Log.v(TAG, "SELECTION:" + value);
}
}
);
我检测到onTouchEvent
检测到的运动事件为ACTION_UP
时的第一个选择。
webview.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(event.getAction() == MotionEvent.ACTION_UP)
{
//webview started selection a word
}
}
});
我的问题是能够使用处理程序检测选择何时发生变化。不幸的是,在使用默认选择处理程序更改选择时,未调用ACTION_MOVE
和ACTION_DOWN
。
请注意,当我使用ActionMode CallBack
功能时,默认选择将停止工作。
答案 0 :(得分:1)
尝试让系统为您完成操作,而不是试图管理触摸:
How to get the selected text of webview in ActionMode override
@Override
public void onReceiveValue(String value)
{
Log.v(TAG, "SELECTION:" + value);
}
可能.... selection change ? :)