2016-06-30 6 views
0

Ich verwende Nexus 6 (API 22). Ich möchte einige weitere Optionen hinzufügen, wenn der Benutzer Edittext lange drückt. Normalerweise, wenn wir lange auf Edittext drücken, erscheint ein Popup-Menü und ich möchte neben dem Einfügen-Menü noch weitere Funktionen hinzufügen.NoSuchMethodError bei Verwendung von setCustomInsertionActionModeCallback für API <23

Android Dokumentation sagt, wenn wir setCustomInsertionActionModeCallback implementieren, können wir das Verhalten außer Kraft setzen, aber in meinem Fall funktioniert es nicht. Aber in Nexus 6P (API 23) funktioniert es gut. Jede Hilfe wird geschätzt.

Dies ist der Fehler, den ich habe, während setCustomInsertionActionModeCallback

java.lang.NoSuchMethodError: No virtual method setCustomInsertionActionModeCallback(Landroid/view/ActionMode$Callback;)V in class L/view/WriterEditText; or its super classes (declaration of 'view.WriterEditText' appears in /data/app/-1/base.apk) 
     at .EditorViewManager.createEditText(EditorViewManager.java:79) 
     at render.EditorViewManager.createViewAtIndex(EditorViewManager.java:207) 
     at render.Renderer.renderContent1(Renderer.java:158) 
     at render.Renderer.renderContent(Renderer.java:135) 
     at .render.Renderer.reloadDocument(Renderer.java:704) 
     at EditorActivity.onCreate(EditorActivity.java:89) 
     at android.app.Activity.performCreate(Activity.java:5990) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
     at android.app.ActivityThread.access$800(ActivityThread.java:151) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5254) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

Antwort

2

Das Verfahren in API-Ebene hinzugefügt wurde Implementierung 23. Sie können es nicht auf älteren Geräten verwenden. Sie sind herzlich eingeladen, Ihren Anruf in eine Build Versionskontrolle zu verpacken:

if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M) { 
    // call that method 
} 
+1

Vielen Dank für Ihre Antwort. Gibt es eine Möglichkeit, auf das Paste-Popup-Menü zuzugreifen, das angezeigt wird, wenn wir lange auf edittext drücken? – vijay

+0

@vijay: Ich habe das nicht untersucht, sorry. – CommonsWare

+0

Kennen Sie eine Alternative für diese Aktion auf API Level 22? – user2751809

Verwandte Themen