Android物理鍵盤事件解析
前言
Android設(shè)備連接物理鍵盤其實(shí)是個(gè)挺小眾的需求,其實(shí)Android設(shè)備本身就是支持物理鍵盤,dispatchKeyEvent()這個(gè)方法就可以監(jiān)聽物理鍵盤,這里提供一個(gè)封裝的類,解析鍵盤事件。有很多事件,具體可以去看KeyEvent這個(gè)類的源碼,我這里只處理的數(shù)字鍵盤。
實(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 { //其他符號(hào) 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); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 解析android中隱藏與顯示軟鍵盤及不自動(dòng)彈出鍵盤的實(shí)現(xiàn)方法
- Android 設(shè)置Edittext獲取焦點(diǎn)并彈出軟鍵盤
- Android 顯示和隱藏軟鍵盤的方法(手動(dòng))
- Android制作漂亮自適布局鍵盤的方法
- Android 軟鍵盤彈出時(shí)把原來布局頂上去的解決方法
- 5種方法完美解決android軟鍵盤擋住輸入框方法詳解
- Android鍵盤顯示與隱藏代碼
- Android軟鍵盤遮擋的四種完美解決方案
- Android實(shí)現(xiàn)彈出鍵盤的方法
- Android中監(jiān)聽軟鍵盤顯示狀態(tài)實(shí)現(xiàn)代碼
相關(guān)文章
Android實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼
在登錄注冊(cè)軟件時(shí),經(jīng)常會(huì)要求填寫隨機(jī)驗(yàn)證碼,這篇文章為大家詳細(xì)主要介紹了Android實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Android?Jetpack組件ViewModel基本用法詳解
這篇文章主要為大家介紹了Android?Jetpack組件ViewModel基本用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Android中Handler實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式
本篇文章主要介紹了Android中Handler實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07Android把Bitmap保存為PNG圖像文件的簡(jiǎn)單代碼
這篇文章主要介紹了Android把Bitmap保存為PNG圖像文件的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-08-08Android開發(fā)微信小程序路由跳轉(zhuǎn)方式
這篇文章主要為大家介紹了Android開發(fā)微信小程序路由跳轉(zhuǎn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04Android應(yīng)用獲取設(shè)備序列號(hào)的方法
本篇文章主要介紹了Android應(yīng)用獲取設(shè)備序列號(hào)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06Android編程實(shí)現(xiàn)wifi掃描及連接的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)wifi掃描及連接的方法,涉及Android網(wǎng)絡(luò)操作掃描、查找、連接、線程等相關(guān)操作技巧,需要的朋友可以參考下2018-02-02android使用surfaceview+MediaPlayer播放視頻
這篇文章主要為大家詳細(xì)介紹了android使用surfaceview+MediaPlayer播放視頻,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Android 適配器模式應(yīng)用及設(shè)計(jì)原理
這篇文章主要介紹了Android 適配器模式應(yīng)用及設(shè)計(jì)原理的相關(guān)資料,Android開發(fā)者應(yīng)該都知道適配器會(huì)用,但是不是多清楚原理,這里幫大家分析下原理,需要的朋友可以參考下2016-10-10