KeyEvent 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
用於回報按鍵與按鈕事件的物件。
[Android.Runtime.Register("android/view/KeyEvent", DoNotGenerateAcw=true)]
public class KeyEvent : Android.Views.InputEvent, IDisposable
[<Android.Runtime.Register("android/view/KeyEvent", DoNotGenerateAcw=true)>]
type KeyEvent = class
inherit InputEvent
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
用於回報按鍵與按鈕事件的物件。
每次按鍵都會由一連串關鍵事件描述。 按鍵從一個關鍵事件開始,且 #ACTION_DOWN。 若金鑰保持足夠長以致重複,則初始下行後會接著其他金鑰事件, #ACTION_DOWN 且 的 #getRepeatCount()值為非零。 最後一個關鍵事件是 a #ACTION_UP 鍵上升。 若按鍵被取消,鍵上事件將觸發 #FLAG_CANCELED 旗標。
金鑰事件通常會伴隨金鑰碼()、#getKeyCode()掃描碼(#getScanCode())和元狀態(#getMetaState())。 此類別定義了關鍵碼常數。 掃描碼常數是從作業系統取得的原始裝置特定程式碼,因此除非使用 KeyCharacterMap. 元狀態描述按鍵修飾符 #META_SHIFT_ON 如 或 #META_ALT_ON的按鍵狀態。
鍵碼通常與輸入裝置上的個別鍵一一對應。 許多按鍵和按鍵組合在不同輸入裝置上功能差異很大,因此解讀時必須謹慎。 將按鍵映射到字元時,務必使用與輸入裝置相關的 。KeyCharacterMap 請注意,可能同時有多個按鍵輸入裝置在運作,每個裝置都有自己的按鍵字元映射。
由於軟輸入法可以使用多種且創新的文字輸入方式,無法保證軟鍵盤上的任何按鍵都會產生關鍵事件:這由 IME 自行決定,事實上不鼓勵發送此類事件。 你絕不應該依賴在軟輸入法中接收任何鍵的 KeyEvents。 特別是,預設的軟體鍵盤永遠不會向任何針對 Jelly Bean 或更早版本的應用程式發送任何按鍵事件,只會在某些按鍵時發送刪除鍵和返回鍵的事件給針對 Ice Cream Sandwich 或更早應用程式的應用程式。 請注意,其他軟體輸入法可能永遠不會傳送關鍵事件,不論版本為何。 可以考慮使用編輯器操作,例如 android.view.inputmethod.EditorInfo#IME_ACTION_DONE 你需要特定與軟體鍵盤互動,這樣使用者能更清楚應用程式對按鍵的反應。
當與 IME 互動時,框架可能會以特殊動作傳遞關鍵事件,該動作 #ACTION_MULTIPLE 指定該單一重複鍵碼或插入一連串字元。
一般而言,框架無法保證它交付給視圖的關鍵事件總是完整的金鑰序列,因為有些事件可能會在交付前被刪除或修改,包含視圖。 視圖實作應能應對 #FLAG_CANCELED 並容忍異常情況,例如未先收到前 #ACTION_DOWN 一鍵按鍵的 新 #ACTION_UP 訊息。
請參閱相關 InputDevice 資訊,了解不同輸入裝置與來源如何代表按鍵與按鈕。
的 android.view.KeyEventJava 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32, MetaKeyStates, Int32, Int32, KeyEventFlags, InputSourceType) |
建立一個新的關鍵事件。 |
| KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32, MetaKeyStates, Int32, Int32, KeyEventFlags) |
建立一個新的關鍵事件。 |
| KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32, MetaKeyStates, Int32, Int32) |
建立一個新的關鍵事件。 |
| KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32, MetaKeyStates) |
建立一個新的關鍵事件。 |
| KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32) |
建立一個新的關鍵事件。 |
| KeyEvent(Int64, String, Int32, KeyEventFlags) |
為一串字元建立一個新的關鍵事件。 |
| KeyEvent(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
| KeyEvent(KeyEvent, Int64, Int32) |
已淘汰.
複製一個現有的關鍵事件,修改其時間與重複次數。 |
| KeyEvent(KeyEvent) |
製作一個現有關鍵事件的精確複製品。 |
| KeyEvent(KeyEventActions, Keycode) |
建立一個新的關鍵事件。 |
欄位
| 名稱 | Description |
|---|---|
| KeycodeAccessibility |
已淘汰.
關鍵代碼常數:系統可及性鍵。 |
| KeycodeClose |
已淘汰.
關鍵代碼常數:AC 關閉。 |
| KeycodeContextualInsert |
已淘汰.
鍵碼常數:上下文插入鍵。 |
| KeycodeContextualQuery |
已淘汰.
關鍵代碼常數:情境查詢鍵。 |
| KeycodeContextualSearch |
已淘汰.
鍵碼常數:情境搜尋鍵。 |
| KeycodeDemoApp1 |
已淘汰.
關鍵代碼常數:示範應用金鑰 #1。 |
| KeycodeDemoApp2 |
已淘汰.
關鍵代碼常數:示範應用程式金鑰 #2。 |
| KeycodeDemoApp3 |
已淘汰.
關鍵程式碼常數:示範應用程式金鑰 #3。 |
| KeycodeDemoApp4 |
已淘汰.
關鍵代碼常數:示範應用程式金鑰 #4。 |
| KeycodeDictate |
已淘汰.
關鍵程式碼常數:開始對輸入欄位進行口述 |
| KeycodeDoNotDisturb |
已淘汰.
關鍵代碼常數:切換「請勿打擾」模式。 |
| KeycodeEmojiPicker |
已淘汰.
關鍵代碼常數:開啟表情符號選擇器。 |
| KeycodeF13 |
已淘汰.
鍵碼常數:F13 鍵。 |
| KeycodeF14 |
已淘汰.
關鍵代碼常數:F14 鍵。 |
| KeycodeF15 |
已淘汰.
鍵碼常數:F15 鍵。 |
| KeycodeF16 |
已淘汰.
鍵碼常數:F16 鍵。 |
| KeycodeF17 |
已淘汰.
鍵碼常數:F17 鍵。 |
| KeycodeF18 |
已淘汰.
鍵碼常數:F18 鍵。 |
| KeycodeF19 |
已淘汰.
鍵碼常數:F19 鍵。 |
| KeycodeF20 |
已淘汰.
鍵碼常數:F20 鍵。 |
| KeycodeF21 |
已淘汰.
鍵碼常數:F21 鍵。 |
| KeycodeF22 |
已淘汰.
鍵碼常數:F22 鍵。 |
| KeycodeF23 |
已淘汰.
鍵碼常數:F23 鍵。 |
| KeycodeF24 |
已淘汰.
鍵碼常數:F24 鍵。 |
| KeycodeFeaturedApp1 |
已淘汰.
鍵碼常數:特色應用程式金鑰 #1。 |
| KeycodeFeaturedApp2 |
已淘汰.
鍵碼常數:特色應用程式金鑰 #2。 |
| KeycodeFeaturedApp3 |
已淘汰.
鍵碼常數:特色應用程式金鑰 #3。 |
| KeycodeFeaturedApp4 |
已淘汰.
關鍵代碼常數:特色應用程式金鑰 #4。 |
| KeycodeFullscreen |
已淘汰.
關鍵代碼常數:切換全螢幕模式(在目前應用程式上)。 |
| KeycodeKeyboardBacklightDown |
已淘汰.
關鍵代碼常數:鍵盤背光調暗。 |
| KeycodeKeyboardBacklightToggle |
已淘汰.
鍵碼常數:鍵盤背光切換。 |
| KeycodeKeyboardBacklightUp |
已淘汰.
關鍵代碼常數:鍵盤背光亮起。 |
| KeycodeLock |
已淘汰.
密碼常數:鎖定螢幕。 |
| KeycodeMacro1 |
已淘汰.
鍵碼常數:使用者可透過系統自訂使用方式的按鈕。 |
| KeycodeMacro2 |
已淘汰.
鍵碼常數:使用者可透過系統自訂使用方式的按鈕。 |
| KeycodeMacro3 |
已淘汰.
鍵碼常數:使用者可透過系統自訂使用方式的按鈕。 |
| KeycodeMacro4 |
已淘汰.
鍵碼常數:使用者可透過系統自訂使用方式的按鈕。 |
| KeycodeNew |
已淘汰.
關鍵代碼常數:AC 新。 |
| KeycodePrint |
已淘汰.
關鍵代碼常數:列印。 |
| KeycodeRecentApps |
已淘汰.
關鍵程式碼不變:要開啟最近應用程式檢視(a. |
| KeycodeScreenshot |
已淘汰.
關鍵程式碼常數:截圖。 |
| KeycodeStylusButtonPrimary |
已淘汰.
鍵碼常數:唱針筆筒上的主按鈕。 |
| KeycodeStylusButtonSecondary |
已淘汰.
關鍵密碼常數:觸控筆筆筒上的次要按鈕。 |
| KeycodeStylusButtonTail |
已淘汰.
鍵碼常數:觸控筆尾端的一個按鈕。 |
| KeycodeStylusButtonTertiary |
已淘汰.
關鍵密碼常數:唱針筆筒上的第三按鈕。 |
| KeycodeVideoApp1 |
已淘汰.
鍵碼常數:Video Application 鍵號 #1。 |
| KeycodeVideoApp2 |
已淘汰.
關鍵代碼常數:Video Application key #2。 |
| KeycodeVideoApp3 |
已淘汰.
鍵碼常數:Video Application 鍵號 #3。 |
| KeycodeVideoApp4 |
已淘汰.
鍵碼常數:Video Application 鍵號 #4。 |
| KeycodeVideoApp5 |
已淘汰.
鍵碼常數:視訊應用鍵號 #5。 |
| KeycodeVideoApp6 |
已淘汰.
鍵碼常數:視訊應用鍵 #6。 |
| KeycodeVideoApp7 |
已淘汰.
關鍵代碼常數:Video Application key #7。 |
| KeycodeVideoApp8 |
已淘汰.
鍵碼常數:Video Application 鍵號 #8。 |
| MaxKeycode |
已淘汰.
指定此 API 層級定義的最大金鑰碼。 |
屬性
| 名稱 | Description |
|---|---|
| Action |
擷取此關鍵事件的動作。 |
| Characters |
對於具有鍵碼 的 |
| Class |
回傳此 |
| Creator |
取得 KeyEvent 實例的可分割產生器。 |
| Device |
取得事件來源的裝置。 (繼承來源 InputEvent) |
| DeviceId |
取得該事件發生的裝置的 ID。 id 為零表示事件並非來自實體裝置,並對應到預設的鍵位映射。 其他數字是任意的,你不應該依賴這些數值。 |
| DisplayLabel |
獲得此鑰匙的主要角色。 |
| DownTime |
在時間基準中取得最近一次按鍵關閉事件 |
| EventTime |
取得該事件發生的時間,也就是 |
| Flags |
此關鍵事件的旗幟回歸。 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| HasNoModifiers |
若未按修飾鍵,則返回 true。 |
| IsAltPressed |
回傳 ALT meta 鍵的按鍵狀態。 |
| IsCanceled |
對於 |
| IsCapsLockOn |
回傳大寫 LOCK 元鍵的鎖定狀態。 |
| IsCtrlPressed |
回傳 CTRL 元鍵的按下狀態。 |
| IsFunctionPressed |
回傳 FUNCTION 元鍵的按下狀態。 |
| IsLongPress |
對於 |
| IsMetaPressed |
回傳 META 元鍵的按鍵狀態。 |
| IsNumLockOn |
回傳 NUM LOCK 元金鑰的鎖定狀態。 |
| IsPrintingKey |
如果此金鑰產生字形,則回傳為真。 |
| IsScrollLockOn |
回傳 SCROLL LOCK 元金鑰的鎖定狀態。 |
| IsShiftPressed |
回傳 SHIFT 元鍵的按鍵狀態。 |
| IsSymPressed |
回傳 SYM 元鍵的按鍵狀態。 |
| IsSystem |
這是系統金鑰嗎? 系統鍵無法用於選單快捷鍵。 |
| IsTracking |
對於 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| JniPeerMembers |
取得 .NET 用於 Android 綁定執行時的 JNI 節點元資料。 |
| KeyCharacterMap |
會跟 |
| KeyCode |
取得該金鑰事件的金鑰碼。 |
| MaxKeyCode |
回傳最大鍵碼。 |
| MetaState |
回傳元鍵的狀態。 |
| ModifierMetaStateMask |
會得到一個包含所有有效修飾鍵元狀態位元的遮罩。 |
| Modifiers |
回傳修飾鍵的狀態。 |
| Number |
取得與金鑰相關的數字或符號。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| RepeatCount |
取得該事件的重複次數。 |
| ScanCode |
取得此金鑰事件的硬體金鑰 ID。 |
| Source |
找出事件的源頭。 |
| ThresholdClass |
取得 .NET 用於 Android 綁定執行時的 JNI 類別處理柄。 |
| ThresholdType |
取得 .NET 用於 Android 綁定執行時所使用的受管理型別。 |
| UnicodeChar |
取得由指定金鑰與元金鑰狀態組合產生的 Unicode 字元。 |
方法
| 名稱 | Description |
|---|---|
| ChangeAction(KeyEvent, KeyEventActions) |
建立一個與先前相同但動作被取代的新關鍵事件。 |
| ChangeFlags(KeyEvent, KeyEventFlags) |
建立一個與給定事件相同的新金鑰事件,但其旗標被替換為給定值。 |
| ChangeTimeRepeat(KeyEvent, Int64, Int32, KeyEventFlags) |
建立一個與給定事件相同的新關鍵事件,但其事件時間和重複次數被替換為給定值。 |
| ChangeTimeRepeat(KeyEvent, Int64, Int32) |
建立一個與給定事件相同的新關鍵事件,但其事件時間和重複次數被替換為給定值。 |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| DescribeContents() |
描述此 Parcelable 的組建表示中包含的特殊物件種類。 (繼承來源 InputEvent) |
| Dispatch(KeyEvent+ICallback, KeyEvent+DispatcherState, Object) |
將此關鍵事件派遣給回調接收器。 |
| Dispatch(KeyEvent+ICallback) |
已淘汰.
將此關鍵事件派遣給回調接收器。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| Equals(Object) |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetDeadChar(Int32, Int32) |
透過強調字元來塑造出那個角色。 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetKeyData(KeyCharacterMap+KeyData) |
已淘汰.
取得特定按鍵碼的字元轉換資料。 |
| GetMatch(Char[], Int32) |
已淘汰.
取得這個關鍵事件能在特定元狀態下產生的第一個候選角色。 |
| GetMatch(Char[], MetaKeyStates) |
取得由指定鍵碼可產生的字元陣列中的第一個字元。 |
| GetMatch(Char[]) |
取得由指定鍵碼可產生的字元陣列中的第一個字元。 |
| GetUnicodeChar(Int32) |
已淘汰.
取得由此關鍵事件產生的 Unicode 字元,並帶有指定的元狀態。 |
| GetUnicodeChar(MetaKeyStates) |
取得由指定金鑰與元金鑰狀態組合產生的 Unicode 字元。 |
| HasModifiers(MetaKeyStates) |
如果只按下指定的修飾鍵,則會回傳真值。 |
| IsFromSource(InputSourceType) |
判斷事件是否來自給定來源。 (繼承來源 InputEvent) |
| IsGamepadButton(Keycode) |
如果指定的鍵碼是遊戲手把按鈕,則會回傳為真。 |
| IsMediaSessionKey(Int32) |
如果未處理,會回傳此金鑰是否會送達。 |
| IsModifierKey(Keycode) |
如果這個鍵碼是修飾鍵,則回傳為真。 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| KeyCodeFromString(String) |
以符號名稱(如「KEYCODE_A」)或等效的數值常數(如「29」)取得鍵碼。 |
| KeyCodeToString(Keycode) |
回傳一個代表指定鍵碼符號名稱的字串,如「KEYCODE_A」、「KEYCODE_DPAD_UP」,或若未知則為等效數值常數如「1001」。 |
| MetaStateHasModifiers(MetaKeyStates, MetaKeyStates) |
如果只按指定的修飾鍵,根據指定的元狀態按下,則返回真。 |
| MetaStateHasNoModifiers(MetaKeyStates) |
若未依指定元狀態按下修飾鍵,則回傳真值。 |
| NormalizeMetaState(MetaKeyStates) |
標準化指定的元狀態。 |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| SetSource(InputSourceType) |
設定產生此關鍵事件的輸入來源。 |
| StartTracking() |
將此標記為 Late |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
將中的這個物件扁平化為 Parcel。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
用於回報按鍵與按鈕事件的物件。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
用於回報按鍵與按鈕事件的物件。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
用於回報按鍵與按鈕事件的物件。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |