android 禁止系统软键盘,拦截键盘事件

在Edittext中设置
.setInputType(InputType.TYPE_NULL);

public void disableShowInput(){
if (android.os.Build.VERSION.SDK_INT <= 10){
editText.setInputType(InputType.TYPE_NULL);
}else {
Class<EditText> cls = EditText.class;
Method method;
try {
method = cls.getMethod("setShowSoftInputOnFocus",boolean.class);
method.setAccessible(true);
method.invoke(editText,false)
}catch (Exception e) {//TODO: handle exception
}
try {
method = cls.getMethod("setSoftInputShownOnFocus",boolean.class);
method.setAccessible(true);
method.invoke(editText,false);
}catch (Exception e) {//TODO: handle exception
} } }

拦截键盘事件

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK) { //监控/拦截/屏蔽返回键
        processExit();
        return true;
    } else if(keyCode == KeyEvent.KEYCODE_MENU) {
        //监控/拦截菜单键
    } else if(keyCode == KeyEvent.KEYCODE_HOME) {
        //由于Home键为系统键,此处不能捕获,需要重写onAttachedToWindow()
    }
    return super.onKeyDown(keyCode, event);
}

参考文章
https://blog.csdn.net/sinat_27672523/article/details/56839837

猜你喜欢

转载自blog.csdn.net/fendouwangzi/article/details/80999442