2016-07-04 15 views
8

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 onTouchEventACTION_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_MOVEACTION_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.

+0

[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

+0

Cảm ơn bạn, tôi đã tìm thấy một công việc xung quanh. – coder

+0

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? –

Trả lời

Các vấn đề liên quan