tôi đã có thể để có được những văn bản đã chọn sử dụng phương pháp sau đây:Phát hiện thay đổi lựa chọn trong WebView
webview.evaluateJavascript("(function(){return window.getSelection().toString()})()",
new ValueCallback<String>()
{
@Override
public void onReceiveValue(String value)
{
selected = value;
Log.v(TAG, "SELECTION:" + value);
}
}
);
Và tôi phát hiện ra sự lựa chọn đầu tiên sử dụng khi sự kiện chuyển động phát hiện bởi onTouchEvent
là 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
}
}
});
Vấn đề của tôi là có thể phát hiện khi lựa chọn thay đổi bằng trình xử lý. Thật không may là ACTION_MOVE
và ACTION_DOWN
không được gọi trong khi thay đổi lựa chọn bằng cách sử dụng trình xử lý lựa chọn mặc định.
Vui lòng lưu ý rằng khi tôi sử dụng chức năng ActionMode CallBack
, lựa chọn mặc định sẽ ngừng hoạt động.
[Có một cái nhìn về liên kết này. Nó có thể giúp bạn.] (Http://stackoverflow.com/questions/8656395/how-do-i-implement-select-and-highlight-text-in-android) – user320676
Cảm ơn bạn, tôi đã tìm thấy một công việc xung quanh. – coder
Vui lòng, bạn có thể thêm "giải pháp thay thế" của mình làm câu trả lời không? –