2009-07-10 15 views
6

ब्राउज़र यह वेबवीव पर public void emulateShiftHeld() विधि को कॉल करके करता है जो एसडीके में छिपा हुआ है।
कोई अन्य विकल्प?वेबव्यू में टेक्स्ट का चयन करना?

+0

अरे आपको अपनी समस्या का समाधान मिला है? – vnshetty

+0

यह समाधान आईसीएस –

उत्तर

8

वर्ग कि WebView फैली से:

public void selectAndCopyText() { 
    try { 
     Method m = WebView.class.getMethod("emulateShiftHeld", null); 
     m.invoke(this, null); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     // fallback 
     KeyEvent shiftPressEvent = new KeyEvent(0,0, 
      KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0); 
     shiftPressEvent.dispatch(this); 
    } 
} 

और फिर आप ClipboardManager उपयोग करने के लिए नया पाठ के लिए देखने के लिए।

एंड्रॉइड 1.5 - 2.3 पर काम करता है। emulateShiftHeld() 2.2 के बाद से सार्वजनिक किया गया।

+0

पर काम नहीं करता है जब तक उपयोगकर्ता मैन्युअल रूप से ** ** का चयन करके ** "सहयोग" करता है। Http://stackoverflow.com/questions/5250290/why-doesnt-this-motionevent-simulation-work –

+0

Anroid 4.0.3 m.invoke (webView, null) के अंतर्गत मूल क्रैश का कारण 09-21 23: 20: 49.151: ए/libc (4103): 0x00000014 पर घातक सिग्नल 11 (SIGSEGV) (कोड = 1) –

+0

क्षमा करें मुझे यह नहीं मिला .. मैंने अपनी कक्षा में selectAndCopyText() जोड़ा है जो वेबव्यू को बढ़ाता है, लेकिन मैं इसे कहां कहूं WebView में पाठ को चुनने योग्य होने की अनुमति देने के लिए फ़ंक्शन? – Bruce

3

कोड का यह हिस्सा ठीक है जैसा emulateshiftheld() है। यह उपयोगकर्ता को पाठ का चयन करने की अनुमति देता है। फिर स्वचालित रूप से क्लिपबोर्ड पर कॉपी करता है।

 KeyEvent shiftPressEvent = new KeyEvent(0,0, 
       KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0); 
      shiftPressEvent.dispatch(portal); 
संबंधित मुद्दे