安卓onKeyDown事件 重新獲取焦點(diǎn)

1)onKeyDown方法,該方法是接口KeyEvent.Callback中的抽象方法,所有的View全部實(shí)現(xiàn)了該接口并重寫了該方法,該方法用來捕捉手機(jī)鍵盤被按下的事件。

2)參數(shù)keyCode,該參數(shù)指的是被按下的鍵的鍵盤碼,手機(jī)鍵盤中每個(gè)按鈕都會(huì)有其對應(yīng)的鍵盤碼,在應(yīng)用程序都是通過鍵盤碼才知道用戶按下的是哪個(gè)鍵。

3)當(dāng)用戶按下按鍵時(shí),系統(tǒng)會(huì)自動(dòng)將事件封裝成KeyEvent對象供應(yīng)用程序使用。按鍵事件KeyEvent按鍵事件有多種常量類型,比如 KEYCODE_BACK

4)返回值,該方法的返回值為一個(gè)boolean類型的變量,當(dāng)返回true時(shí),表示已經(jīng)完整地處理了這個(gè)事件,并不希望其他的回調(diào)方法再次進(jìn)行處理,而當(dāng)返回false時(shí),表示并沒有完全處理完該事件,更希望其他回調(diào)方法繼續(xù)對其進(jìn)行處理,例如Activity中的回調(diào)方法。參考文本

private voidsetFocus() {//獲取焦點(diǎn)

et_cardno.setFocusable(true);

et_cardno.setFocusableInTouchMode(true);

et_cardno.requestFocus();

}

//實(shí)現(xiàn)的基本原理就是,當(dāng)按下BACK鍵時(shí),會(huì)被onKeyDown捕獲,判斷是BACK鍵,則執(zhí)行voidsetFocus方法。

@Override

public booleanonKeyDown(intkeyCode, KeyEvent event) {

LogUtils.d("TAG","=========================== 調(diào)用onKeyDown ");

setFocus();

return super.onKeyDown(keyCode, event);

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 例子: //這條命令相當(dāng)于按了設(shè)備的Backkey鍵 adb shell input keyevent 4 //可...
    井望閱讀 14,355評論 0 5
  • 手機(jī)端配置tcp方式連接 su setprop service.adb.tcp.port 5555 stop ad...
    yoyo鹿鳴閱讀 5,818評論 0 4
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,317評論 0 17
  • 開發(fā)中需要用到遙控器,各種上下左右菜單音量飛鼠OK按鍵滿天飛...對于key事件的捕獲僅限于BACK/MENU/H...
    鞋xx閱讀 2,581評論 2 3
  • 事件分為按鍵事件分發(fā),觸摸事件分發(fā),還有軌跡球事件,軌跡球已經(jīng)被淘汰,按鍵事件分發(fā)主要是在TV上,使用遙控器做按鍵...
    博為峰51Code教研組閱讀 1,144評論 0 0

友情鏈接更多精彩內(nèi)容