最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android物理鍵盤事件解析

 更新時間:2019年12月25日 12:14:30   作者:張三滴張呀  
這篇文章主要為大家詳細(xì)介紹了Android物理鍵盤事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

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入門之讀寫本地文件的實現(xiàn)

    Android入門之讀寫本地文件的實現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Android如何實現(xiàn)讀寫本地文件的功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Android有一定的幫助,需要的可以參考一下
    2022-12-12
  • Flutter?將Dio請求轉(zhuǎn)發(fā)原生網(wǎng)絡(luò)庫的實現(xiàn)方案

    Flutter?將Dio請求轉(zhuǎn)發(fā)原生網(wǎng)絡(luò)庫的實現(xiàn)方案

    這篇文章主要介紹了Flutter?將Dio請求轉(zhuǎn)發(fā)原生網(wǎng)絡(luò)庫,需要注意添加NativeNetInterceptor,如果有多個攔截器,例如LogInterceptors等等,需要將NativeNetInterceptor放到最后,需要的朋友可以參考下
    2022-05-05
  • Android開發(fā)教程之ContentProvider數(shù)據(jù)存儲

    Android開發(fā)教程之ContentProvider數(shù)據(jù)存儲

    這篇文章主要介紹了Android開發(fā)教程之ContentProvider數(shù)據(jù)存儲的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Android下拉刷新控件PullToRefresh實例解析

    Android下拉刷新控件PullToRefresh實例解析

    這篇文章主要為大家詳細(xì)解析了Android下拉刷新控件PullToRefresh實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android studio 3.0安裝配置方法圖文教程

    Android studio 3.0安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Android studio 3.0安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • android使用多線程更新ui示例分享

    android使用多線程更新ui示例分享

    在Android平臺中多線程應(yīng)用很廣泛,在UI更新、游戲開發(fā)和耗時處理(網(wǎng)絡(luò)通信等)等方面都需要多線程,下面是一個在線程中更新UI的代碼
    2014-01-01
  • Flutter如何輕松實現(xiàn)動態(tài)更新ListView淺析

    Flutter如何輕松實現(xiàn)動態(tài)更新ListView淺析

    在Android中通常都會用到listview.那么flutter里面怎么用呢?下面這篇文章主要給大家介紹了關(guān)于Flutter如何輕松實現(xiàn)動態(tài)更新ListView的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Android 實現(xiàn)將Bitmap 保存到本地

    Android 實現(xiàn)將Bitmap 保存到本地

    這篇文章主要介紹了Android 實現(xiàn)將Bitmap 保存到本地,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 優(yōu)化Gradle提升Gradle編譯速度

    優(yōu)化Gradle提升Gradle編譯速度

    今天小編就為大家分享一篇關(guān)于優(yōu)化Gradle提升Gradle編譯速度的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 詳解Android中Handler的實現(xiàn)原理

    詳解Android中Handler的實現(xiàn)原理

    這篇文章主要為大家詳細(xì)介紹了Android中Handler的實現(xiàn)原理,本文深入分析 Android 的消息處理機(jī)制,了解 Handler 的工作原理,感興趣的小伙伴們可以參考一下
    2016-04-04

最新評論

木里| 贵州省| 北碚区| 天峨县| 额济纳旗| 邹城市| 中牟县| 信阳市| 大兴区| 普格县| 甘泉县| 涡阳县| 新邵县| 班玛县| 大名县| 通榆县| 康乐县| 武乡县| 漳州市| 田东县| 岑溪市| 怀来县| 满洲里市| 田阳县| 四子王旗| 武山县| 邻水| 泰安市| 屯门区| 小金县| 安多县| 平阴县| 连州市| 吐鲁番市| 天津市| 辛集市| 绩溪县| 修武县| 芦山县| 晴隆县| 府谷县|