2012-08-09 13 views
6

WebView'de metin seçim modunu tetikler. WebView'de metin seçim modunu programlı olarak tetiklemem gerekir, ancak kullandığım kod Jelly Bean üzerinde çalışmıyor mu?Android: Programlı olarak Jelly Bean

Aşağıdaki kodu kullanıyorum ama artık Android 4.1'de (Jelly Bean) çalışmıyor, çünkü WebView.selectText, emulateShiftHeld ve anahtar gönderimi artık Jelly Bean'de desteklenmiyor. How to enable the default highlight menus in android webview?

public void selectAndCopyText() { 
    try { 
     // ICS 
      WebView.class.getMethod("selectText").invoke(this); 
     } catch (Exception e1) { 
     try { 
      Method m = WebView.class.getMethod("emulateShiftHeld", (Class[])null); 
      m.invoke(this, (Object[])null); 
     } catch (Exception e2) { 
      // fallback 
      KeyEvent shiftPressEvent = new KeyEvent(0,0, 
        KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0); 
      shiftPressEvent.dispatch(this); 
     } 
    } 
} 

nasıl Jelly Bean üzerinde çalışır benzer işlevler uygularım: ICS kadar olan tüm sürümlerinde çalışır

ardından kod dayanmaktadır?

Burada yorumlarda potansiyel bir çözüm listeledik
+0

Hey @Martin, sonunda bunu çözdünüz mü? – davids

+0

Merhaba davids, http://stackoverflow.com/questions/7581131/how-to-enable-the-default-highlight-menus-in-android-webview – Martin

+0

Teşekkürler @Martin :) – davids

cevap

2

: Burada How to enable the default highlight menus in android webview?

potansiyel çözümün içeriği:

KeyEvent enterEvent = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_ENTER,0,0); 
enterEvent.dispatch(this); 

I: android.webkit.WebViewClassic analiz ettikten sonra aşağıdaki ile bazı başarılar oldu Bir öykünücüyü kullanırken yukarıdaki çalışmadan biraz önce WebView'u aşağı kaydırmaya ihtiyacım olduğu için daha fazla gerekli olabileceğini düşündüm, ancak gerçek bir JellyBean aygıtını test ettikten sonra yukarıdakiler iyi çalışıyor gibi görünüyor.