EditText has a oncreateinputconnection method that allows you to customize an input method connector where there is a way (Finishcomposingtext) to listen for input completion.
Public classMyedittextextendsedittext{ PublicMyedittext (Context context) {Super(context); } PrivateOnfinishcomposinglistener Mfinishcomposinglistener; Public voidSetonfinishcomposinglistener (Onfinishcomposinglistener listener) { This. Mfinishcomposinglistener =Listener; } @Override Publicinputconnection oncreateinputconnection (editorinfo outattrs) {return NewMyinputconnection (Super. Oncreateinputconnection (Outattrs),false); } Public classMyinputconnectionextendsInputconnectionwrapper { PublicMyinputconnection (inputconnection Target,Booleanmutable) { Super(target, mutable); } @Override Public BooleanFinishcomposingtext () {BooleanFinishcomposing =Super. Finishcomposingtext (); if(Mfinishcomposinglistener! =NULL) {mfinishcomposinglistener.finishcomposing (); } returnfinishcomposing; } } Public Interfaceonfinishcomposinglistener{ Public voidfinishcomposing (); } }
About EditText soft keyboard exit monitoring workaround