softInputMode- 软件盘监听事件

软件盘的监听事件,如下

 private final OnKeyListener mSubjectKeyListener = new OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() != KeyEvent.ACTION_DOWN) {
                return false;
            }     

            // When the subject editor is empty, press "DEL" to hide the input field.
            if ((keyCode == KeyEvent.KEYCODE_DEL) && (mSubjectTextEditor.length() == 0)) { 
/* Vanzo:zhangshuli on: Thu, 05 Mar 2015 10:26:59 +0000
                showSubjectEditor(false);
 */
// End of Vanzo: zhangshuli
                mWorkingMessage.setSubject(null, true);
                /// M: add for character counter
                updateCounter(mWorkingMessage.getText(), 0, 0, 0);
                return true; 
            }     
            return false;
        }     
    };    

然后我们看一下调用的地方

mSubjectTextEditor = (EditText)findViewById(R.id.subject);

mSubjectTextEditor.setOnKeyListener(show ? mSubjectKeyListener : null);

所以,我们可以得出的结论就是,一些控件本身就是监听软件盘的功能。

原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_softinput_150305111.html