Android物理鍵盤事件解析
前言
Android設(shè)備連接物理鍵盤其實是個挺小眾的需求,其實Android設(shè)備本身就是支持物理鍵盤,dispatchKeyEvent()這個方法就可以監(jiān)聽物理鍵盤,這里提供一個封裝的類,解析鍵盤事件。有很多事件,具體可以去看KeyEvent這個類的源碼,我這里只處理的數(shù)字鍵盤。
實現(xiàn)方式
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) {
//數(shù)字
aChar = (char) ('0' + keyCode - KeyEvent.KEYCODE_0);
} else if(keyCode >= KeyEvent.KEYCODE_NUMPAD_0 && keyCode <= KeyEvent.KEYCODE_NUMPAD_9) {
//數(shù)字
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.設(shè)置監(jiān)聽
DispatchKeyResolver dr = new DispatchKeyResolver();
//設(shè)置事件回調(diào)
dr.setKeyInputListener(...)
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
//物理鍵確定,并且是按下的行為(避免兩次響應(yīng))
if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){
dr.resolveKeyEvent(event)
}
return super.dispatchKeyEvent(event);
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android?Jetpack組件ViewModel基本用法詳解
這篇文章主要為大家介紹了Android?Jetpack組件ViewModel基本用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
Android中Handler實現(xiàn)倒計時的兩種方式
本篇文章主要介紹了Android中Handler實現(xiàn)倒計時的兩種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
Android開發(fā)微信小程序路由跳轉(zhuǎn)方式
這篇文章主要為大家介紹了Android開發(fā)微信小程序路由跳轉(zhuǎn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04
Android應(yīng)用獲取設(shè)備序列號的方法
本篇文章主要介紹了Android應(yīng)用獲取設(shè)備序列號的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
android使用surfaceview+MediaPlayer播放視頻
這篇文章主要為大家詳細介紹了android使用surfaceview+MediaPlayer播放視頻,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11
Android 適配器模式應(yīng)用及設(shè)計原理
這篇文章主要介紹了Android 適配器模式應(yīng)用及設(shè)計原理的相關(guān)資料,Android開發(fā)者應(yīng)該都知道適配器會用,但是不是多清楚原理,這里幫大家分析下原理,需要的朋友可以參考下2016-10-10

