关于 edittext 软键盘退出监听解决办法

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();
        }
}  
时间: 2024-08-04 18:31:53

关于 edittext 软键盘退出监听解决办法的相关文章

Android 软键盘的监听(监听高度,是否显示)

Android官方本身没有提供一共好的方法来对软键盘进行监听,但我们实际应用时,很多地方都需要针对软键盘来对UI进行一些优化. 以下是整理出来的一个不错的方法,大家可以使用. 不过要注意的是,由于是使用ViewTreeObserver来进行监听,所以每次layout有所改变的话,都会触发,所以listner里面如果有改变layout的方法的话,要注意不要陷入无限触发循环了,这时需要加入一些标记值来规避,这个可以参考代码注释 public class SoftKeyboardUtil { publ

js对手机软键盘的监听

js还没有办法对手机软键盘直接进行监听的,但是可以有其他角度来判断软键盘是否弹起.比如输入框是否获取焦点等.focusin和focusout支持冒泡,对应focus和blur, 使用focusin和focusout的原因是focusin和focusout可以冒泡,focus和blur不会冒泡,这样就可以使用事件代理,处理多个输入框存在的情况. $(document).on('focusin', function () { //软键盘弹出的事件处理 }); $(document).on('focu

移动端软键盘收起监听

在移动端进行表单操作时,时常需要监听键盘的收起,从而完成输入的处理.但浏览器并没有提供直接监听软键盘收起的接口,那该如何进行监听能?这里提供监听的兼容方案. 在安卓下,大部分浏览器在软键盘收起时,会触发resize事件,可以以此来监听:但ios操作系统并不会触发该事件,但大部分浏览器会触发表单的blur事件,所以可以以此为监听点.浏览器的软件盘监听状况如下表所示:   软键盘收起事件监听表 所以,通过监听onResize.onBlur可以实现移动端主流浏览器的软键盘收起操作:无法即时监听到的,可

android EditText 软键盘 一些总结

看一个manifest中Activity的配置,如果这个页面有EditText,并且我们想要进入这个页面的时候默认弹出输入法,可以这样设置这个属相:android:windowSoftInputMode=stateVisible,这样就会默认弹起输入法,当然还有别的办法. <activity android:name=".ui.login" android:configChanges="orientation|keyboardHidden|locale" an

ios ---键盘的监听事件

//在view将要出现的时候重载viewWillAppear方法添加通知 监听事件 keyboardWillShow:  keyboardWillHide: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:

android editText 软键盘enter键图标的设置

<EditText android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入单位" android:layout_marginLeft="10dp" android:layout_marginRight="1

java鼠标与键盘事件监听

package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt

EditText 软键盘

EditText 软键盘 package brother.eighteen.demoedittext; import android.content.Context; import android.text.InputType; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.inputmethod.InputMethodManager; import android.w

32位win7系统下配置IIS遇到php-cgi.exe - FastCGI 进程意外退出问题的解决办法

今天重装了一下系统,是32位的WIN7,装完系统后想把IIS装回来,因为有时候需要用到笔记本处理一些事情,结果WEB服务器正常了,但IIS的FASTCGI模块始终不能解析PHP,一直报php-cgi.exe - FastCGI 进程意外退出的错误,于是上网找了一下解决办法,将解决过程写下来,以备忘: 解决的思路很简单,既然是不能解析PHP,那就直接运行一下PHP,看会报什么错,再对症下药,于是,在命令提示符窗口进入php安装的根目录,然后运行php -v的命令,这时窗口弹出计算机丢失msvcr1