Android物理键盘事件解析

Android物理键盘事件解析,第1张

概述Android物理键盘事件解析 前言 Android设备连接物理键盘其实是个挺小众的需求,其实Android设备本身就是支持物理键盘,dispatchKeyEvent()这个方法就可以监听物理键盘,这里提供一个封装的类,解析键盘事件.有很多事件,具体可以去看KeyEvent这个类的源码,我这里只处理的数字键盘. 实现方式 1.键盘事件解析类 public class DispatchKeyResolver { public OnKeyInputListener keyInputListener; public void res

前言

AndroID设备连接物理键盘其实是个挺小众的需求,其实AndroID设备本身就是支持物理键盘,dispatchKeyEvent()这个方法就可以监听物理键盘,这里提供一个封装的类,解析键盘事件。有很多事件,具体可以去看KeyEvent这个类的源码,我这里只处理的数字键盘。

实现方式

1.键盘事件解析类

public class dispatchKeyResolver { public OnKeyinputListener keyinputListener; public voID resolveKeyEvent(KeyEvent event) {  getinputChar(event); } public voID getinputChar(KeyEvent event) {  int keyCode = event.getKeyCode();  char aChar;  if(keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_9) {   //数字   aChar = (char) ('0' + keyCode - KeyEvent.KEYCODE_0);  } else if(keyCode >= KeyEvent.KEYCODE_NUMPAD_0 && keyCode <= KeyEvent.KEYCODE_NUMPAD_9) {   //数字   aChar = (char) ('0' + keyCode - KeyEvent.KEYCODE_NUMPAD_0);  } else {   //其他符号   switch(keyCode) {    case KeyEvent.KEYCODE_PERIOD:     aChar = '.';     break;    case KeyEvent.KEYCODE_NUMPAD_DOT:     aChar = '.';     break;    default:     return;   }  }  keyinputListener.onKeyinput(aChar); } public voID setKeyinputListener(OnKeyinputListener keyinputListener) {  this.keyinputListener = keyinputListener; } public interface OnKeyinputListener {  voID onKeyinput(char aChar); }}

2.设置监听

dispatchKeyResolver dr = new dispatchKeyResolver(); //设置事件回调 dr.setKeyinputListener(...)  @OverrIDe public boolean dispatchKeyEvent(KeyEvent event) {  //物理键确定,并且是按下的行为(避免两次响应)  if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){   dr.resolveKeyEvent(event)  } return super.dispatchKeyEvent(event);} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

总结

以上是内存溢出为你收集整理的Android物理键盘事件解析全部内容,希望文章能够帮你解决Android物理键盘事件解析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1144231.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存