当前需求:软键盘消失就当做输入完成
安卓系统没有自带的监听软键盘消失的方法
直接通过监听是否获取监听聚焦OnFocusChange,同时使用
在OnFinishComposingListener作为是否完成输入,完成之后马上调用clearFocus
此时OnFocusChange会进行回调,此时就完成监听输入完成
edittext 有个onCreateInputConnection 的方法,通过它可以自定义一个输入法连接器,那里连接器里面有个方法(finishComposingText)能监听输入完成的动作原文参考自站长网:.
Java代码
- 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();
- }
- }