軟鍵盤的Enter鍵默認顯示的是“《--”文本,我們知道按Enter建表示前置工作已經準備完畢了,要去什麼什麼啦。比如,在一個搜索中,我們輸入要搜索的文本,然後按Enter表示要去搜索了,但是默認的Enter鍵顯示的是“完成”文本,看着不太合適,不符合搜索的語義,如果能顯示“搜索”兩個字或者顯示一個表示搜索的圖標多好。
Android也爲我們提供的這樣的功能。通過設置EditText的android:imeOptions屬性來改變默認的“完成”文本。這裏舉幾個常用的常量值:
actionUnspecified 未指定,對應常量EditorInfo.IME_ACTION_UNSPECIFIEDactionNone 沒有動作,對應常量EditorInfo.IME_ACTION_NONE
actionGo 去往,對應常量EditorInfo.IME_ACTION_GO
actionSearch 搜索,對應常量EditorInfo.IME_ACTION_SEARCH
actionSend 發送,對應常量EditorInfo.IME_ACTION_SEND
actionNext 下一個,對應常量EditorInfo.IME_ACTION_NEXT
actionDone 完成,對應常量EditorInfo.IME_ACTION_DONE
軟鍵盤Enter鍵事件處理
捕獲EditText軟鍵盤Enter鍵事件方法:
EditText.setOnKeyListener(this);
下面通過代碼來演示一下具體如何處理
-
- et_search.setOnKeyListener(this);
- @Override
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- if(keyCode == KeyEvent.KEYCODE_ENTER){
- userInput = et_search.getText().toString();
- if(TextUtils.isEmpty(userInput)){
- LogUtil.e(TAG, "IME_ACTION_SEARCH input is null");
- return true;
- }
- userInput = userInput.trim();
- doSearch(userInput);
- return true;
- }
- return false;
- }