edittextソフトキーボードのリスニングを終了する解決方法について

3316 ワード

edittextにはonCreateInputConnectionの方法があり、それによって入力コネクタをカスタマイズすることができ、そこにはコネクタの中に入力完了の動作を監視する方法(finishComposingText)がある.
public class MyEditText extends EditText{  

   

        public MyEditText(Context context) {  

                super(context);  

        }   

        private OnFinishComposingListener mFinishComposingListener;  

           

        public void setOnFinishComposingListener(OnFinishComposingListener listener){  

                this.mFinishComposingListener =listener;  

        }   

        @Override  

        public InputConnection onCreateInputConnection(EditorInfo outAttrs) {  

                return new MyInputConnection(super.onCreateInputConnection(outAttrs), false);  

        }    

        public class MyInputConnection extends InputConnectionWrapper {  

                public MyInputConnection(InputConnection target, boolean mutable) {  

                        super(target, mutable);  

                }  

                @Override  

               public boolean finishComposingText() {  

                        boolean finishComposing = super.finishComposingText();  

                        if(mFinishComposingListener != null){  

                                mFinishComposingListener.finishComposing();  

                        }  

                        return finishComposing;  

                }  

        }     

        public interface OnFinishComposingListener{  

                public void finishComposing();  

        }  

}