setdefaultkeymode (int mode) 用來設定乙個activity的預設的按鍵模式,
也就是指這種情況,當activity中發生了一些按鍵事件,但是這些事件沒有被任何控制項listen到時(截獲時),
系統應該如何處理這些按鍵事件。
mode一共有五種
first of all,首先要告訴大家乙個不幸的訊息,上述的預設鍵動作完全不支援中文。
也就是說如果處於中文輸入狀態,那麼按鍵都會被理解為試圖輸入中文,而當輸入完成後產生的中文,也不會進行預設按鍵處理。
所以在我下面的例子中,如果必要,我會呼出軟鍵盤把輸入模式改為英文。
以下分別解釋
default_keys_disable
直接丟棄,這種情況你把鍵盤按穿了也不會有系統理你
default_keys_dialer
將鍵盤事件傳入撥號器進行處理,例如如下**:
這就是乙個最最簡單的android工程預設的helloworld模板,
我們只增加了一句話:setdefaultkeymode(default_keys_dialer);
啟動這個程式,螢幕上只有一行helloworld,但是我們輸入123456,看看會發生什麼。
default_keys_shortcut:
將鍵盤輸入作為當前窗體上註冊的快捷鍵,進行快捷鍵處理,
舉個例子,如果當前選單項註冊了快捷鍵,則可以在不撥出選單的情況下,將鍵盤輸入作為選單快捷鍵處理
關於此種情況的實現分析和驗證例子請看我寫的
default_keys_shortcut 功能的驗證 及其 原始碼實現分析
位址是:
default_keys_search_local:
將鍵盤輸入作為搜尋內容,進行本地搜尋,如果本地沒有實現自定義搜尋,則使用全域性搜尋
為了驗證這種設定,首先注意我們必須實現乙個自定義搜尋,關於如何實現自定義搜尋,請看我寫的
android 自定義搜尋 的簡單實現
位址是:
其次我們必須保證當前處於英文輸入模式,可以通過呼出乙個軟鍵盤來改變當前輸入模式。
確保上述要求實現後,我們輸入任意按鍵,會發現系統直接呼出我們自定義的搜尋介面,如下圖所示:
注意這是乙個我們自定義的搜尋,標題被我改為了my search (注意這裡我沒有新增自定義搜尋建議欄)
default_keys_search_global:
將鍵盤輸入作為搜尋內容,進行全域性搜尋
保證當前處於英文輸入模式,可以通過呼出乙個軟鍵盤來改變當前輸入模式。
確保上述要求實現後,我們輸入任意按鍵,會發現系統直接呼出系統的全域性搜尋介面(也就是google的web搜尋),如下圖所示:
注意已經沒有了my search字樣,而且全域性搜尋是有搜尋建議欄的。
(當然自定義搜尋也可以實現自定義搜尋建議欄)
總結:activity提供的預設按鍵功能其實非常強大,可以把預設按鍵傳入撥號、傳入搜尋、作為選單快捷鍵等等,
在特定的應用場景下,會帶來一些非常神奇和良好的使用者感受。
但是非常可惜的是,完全不支援中文,因此對於我們中國開發者來講,其實用性幾乎等於零了。
不過了解其特殊的功能和用法,也許在一些特定的應用場景下,會帶來意外的便利呢。
Linux下patch和diff的用法介紹
1 7z安裝 如果ubuntu中沒有安裝7z軟體,則可通過下列命令進行安裝 sudo apt get install p7zip p7zip full p7zip rar 2 7z解壓 一般而言推薦選用 7z x 壓縮檔案 7z來解壓,因為其是將壓縮檔案解壓到壓縮包命名的目錄下,即解壓到當前資料夾。...
php檔案上傳之 FILES全域性變數用法介紹
檔案上傳表單的處理 如下 複製 我們來看看files的變數的用法 files myfile error 和該檔案上傳相關的錯誤 error 是在 php 4.2.0 版本中增加的。下面是它的說明 它們在php3.0以後成了常量 upload err ok 值 0 沒有錯誤發生,檔案上傳成功。uplo...
Geodatabase ToolSet的介紹與使用
geodatabasetoolset簡稱為gdbt,是 esri 官網提供的免費工具,在 catalog 中用來協助監測 了解 報告多使用者地理資料庫的工具。用 gdbt 可以協助監測地理資料庫每天的健康狀況,更詳盡的了解資料庫的效能,並進行資料庫效能調優。gdbt 工作與sql server or...