Share via


KeyEvent 類別

定義

用來報告索引鍵和按鈕事件的物件。

[Android.Runtime.Register("android/view/KeyEvent", DoNotGenerateAcw=true)]
public class KeyEvent : Android.Views.InputEvent, IDisposable, Java.Interop.IJavaPeerable
[<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() 執行非零值。 最後一個 #ACTION_UP 索引鍵事件是向上鍵的 。 如果按下按鍵已取消,按鍵啟動事件就會 #FLAG_CANCELED 設定旗標。

主要事件通常會伴隨索引鍵程式碼 () #getKeyCode() 、掃描程式碼 (#getScanCode()) 和中繼狀態 () #getMetaState() 。 此類別中定義了索引鍵程式碼常數。 掃描程式碼常數是從 OS 取得的原始裝置特定程式碼,因此除非使用 KeyCharacterMap 解譯,否則對應用程式來說並不有意義。 中繼狀態原因按鍵修飾詞的按下狀態,例如 #META_SHIFT_ON#META_ALT_ON

金鑰碼通常會對應一對一與輸入裝置上的個別金鑰。 許多按鍵和按鍵組合在不同的輸入裝置上提供相當不同的功能,因此在解譯它們時必須小心。 將索引鍵對應至字元時,一律使用 KeyCharacterMap 與輸入裝置相關聯的 。 請注意,可能同時有多個金鑰輸入裝置作用中,而且每個裝置都有自己的按鍵字元對應。

由於軟式輸入方法可以使用多種且創新的方式來輸入文字,因此不保證在軟式鍵盤上按下任何按鍵會產生按鍵事件:這是保留給輸入法的任意方式,事實上不建議傳送這類事件。 您絕對不應該依賴在軟式輸入方法上接收 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.KeyEvent JAVA 檔。

此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。

建構函式

KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32)

建立新的金鑰事件。

KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32, MetaKeyStates)

建立新的金鑰事件。

KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32, MetaKeyStates, Int32, Int32)

建立新的金鑰事件。

KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32, MetaKeyStates, Int32, Int32, KeyEventFlags)

建立新的金鑰事件。

KeyEvent(Int64, Int64, KeyEventActions, Keycode, Int32, MetaKeyStates, Int32, Int32, KeyEventFlags, InputSourceType)

建立新的金鑰事件。

KeyEvent(Int64, String, Int32, KeyEventFlags)

為字元字串建立新的索引鍵事件。

KeyEvent(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 標記法時使用的建構函式;由執行時間呼叫。

KeyEvent(KeyEvent)

製作現有金鑰事件的確切複本。

KeyEvent(KeyEvent, Int64, Int32)
已淘汰.

複製現有的金鑰事件,修改其時間和重複計數。

KeyEvent(KeyEventActions, Keycode)

建立新的金鑰事件。

欄位

KeycodeDemoApp1
已淘汰.

金鑰碼常數:示範應用程式金鑰 #1。

KeycodeDemoApp2
已淘汰.

金鑰碼常數:示範應用程式金鑰 #2。

KeycodeDemoApp3
已淘汰.

金鑰碼常數:示範應用程式金鑰 #3。

KeycodeDemoApp4
已淘汰.

金鑰碼常數:示範應用程式金鑰 #4。

KeycodeFeaturedApp1
已淘汰.

金鑰碼常數:精選應用程式金鑰 #1。

KeycodeFeaturedApp2
已淘汰.

金鑰碼常數:精選應用程式金鑰 #2。

KeycodeFeaturedApp3
已淘汰.

金鑰碼常數:精選應用程式金鑰 #3。

KeycodeFeaturedApp4
已淘汰.

金鑰碼常數:精選應用程式金鑰 #4。

KeycodeKeyboardBacklightDown
已淘汰.

按鍵程式碼常數:鍵盤下光

KeycodeKeyboardBacklightToggle
已淘汰.

按鍵程式碼常數:鍵盤反光開關

KeycodeKeyboardBacklightUp
已淘汰.

按鍵程式碼常數:鍵盤上光

KeycodeMacro1
已淘汰.

機碼常數:使用者可透過系統自訂其使用方式的按鈕。

KeycodeMacro2
已淘汰.

機碼常數:使用者可透過系統自訂其使用方式的按鈕。

KeycodeMacro3
已淘汰.

機碼常數:使用者可透過系統自訂其使用方式的按鈕。

KeycodeMacro4
已淘汰.

機碼常數:使用者可透過系統自訂其使用方式的按鈕。

KeycodeRecentApps
已淘汰.

索引鍵程式碼常數:若要開啟 (的最近應用程式檢視。

KeycodeStylusButtonPrimary
已淘汰.

機碼常數:手寫筆的筒子上的主要按鈕。

KeycodeStylusButtonSecondary
已淘汰.

索引鍵程式碼常數:手寫筆底部的次要按鈕。

KeycodeStylusButtonTail
已淘汰.

機碼常數:手寫筆結尾的按鈕。

KeycodeStylusButtonTertiary
已淘汰.

索引鍵程式碼常數:手寫筆底部的第三個按鈕。

KeycodeVideoApp1
已淘汰.

金鑰碼常數:影片應用程式金鑰 #1。

KeycodeVideoApp2
已淘汰.

金鑰碼常數:影片應用程式金鑰 #2。

KeycodeVideoApp3
已淘汰.

金鑰碼常數:影片應用程式金鑰 #3。

KeycodeVideoApp4
已淘汰.

金鑰碼常數:影片應用程式金鑰 #4。

KeycodeVideoApp5
已淘汰.

金鑰碼常數:影片應用程式金鑰 #5。

KeycodeVideoApp6
已淘汰.

金鑰碼常數:影片應用程式金鑰 #6。

KeycodeVideoApp7
已淘汰.

金鑰碼常數:影片應用程式金鑰 #7。

KeycodeVideoApp8
已淘汰.

金鑰碼常數:影片應用程式金鑰 #8。

MaxKeycode
已淘汰.

已取代這個成員。

屬性

Action

擷取此索引鍵事件的動作。

Characters

對於索引鍵代碼 #KEYCODE_UNKNOWN 為 的事件特殊案例 #ACTION_MULTIPLE ,這是與 事件相關聯的原始字元字串。

Class

傳回這個 Object 的執行時間類別。

(繼承來源 Object)
Creator
Device

取得這個事件的來源裝置。

(繼承來源 InputEvent)
DeviceId

要新增

DisplayLabel

取得這個索引鍵的主要字元。

DownTime

在時間基底中 android.os.SystemClock#uptimeMillis 擷取最近索引鍵關閉事件的時間。

EventTime

擷取發生此事件的時間,以 android.os.SystemClock#uptimeMillis 時間為基礎。

Flags

傳回這個索引鍵事件的旗標。

Handle

基礎 Android 實例的控制碼。

(繼承來源 Object)
HasNoModifiers

如果未按下修飾詞按鍵,則會傳回 true。

IsAltPressed

傳回 ALT 中繼鍵的已按下狀態。

IsCanceled

針對 #ACTION_UP 事件,表示事件已根據 #FLAG_CANCELED 取消。

IsCapsLockOn

傳回 CAPS LOCK 中繼金鑰的鎖定狀態。

IsCtrlPressed

傳回 CTRL 中繼鍵的已按下狀態。

IsFunctionPressed

傳回 FUNCTION 中繼鍵的已按下狀態。

IsLongPress

針對 #ACTION_DOWN 事件,表示事件已根據 #FLAG_LONG_PRESS 取消。

IsMetaPressed

傳回 META 中繼鍵的已按下狀態。

IsNumLockOn

傳回 NUM LOCK 中繼金鑰的鎖定狀態。

IsPrintingKey

如果此機碼產生字元,則傳回 true。

IsScrollLockOn

傳回 SCROLL LOCK 中繼金鑰的鎖定狀態。

IsShiftPressed

傳回 SHIFT 中繼鍵的已按下狀態。

IsSymPressed

傳回 SYM 中繼鍵的已按下狀態。

IsSystem

這是系統金鑰嗎? 系統按鍵無法用於功能表快捷方式。

IsTracking

針對 #ACTION_UP 事件,表示事件仍會根據 從 #FLAG_TRACKING 其初始向下事件追蹤。

JniIdentityHashCode

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
JniPeerMembers

用來報告索引鍵和按鈕事件的物件。

KeyCharacterMap

KeyCharacterMap取得與鍵盤裝置相關聯的 。

KeyCode

擷取金鑰事件的金鑰碼。

MaxKeyCode

傳回金鑰碼上限。

MetaState

傳回中繼索引鍵的狀態。

ModifierMetaStateMask

取得遮罩,其中包含所有有效的修飾詞金鑰中繼狀態位。

Modifiers

傳回修飾詞索引鍵的狀態。

Number

取得與索引鍵相關聯的數位或符號。

PeerReference

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
RepeatCount

擷取事件的重複計數。

ScanCode

擷取此金鑰事件的硬體金鑰識別碼。

Source

要新增

ThresholdClass

此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式碼使用。

ThresholdType

此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式碼使用。

UnicodeChar

取得指定之索引鍵和中繼索引鍵狀態組合所產生的 Unicode 字元。

方法

ChangeAction(KeyEvent, KeyEventActions)

建立與指定索引鍵事件相同的新索引鍵事件,但動作會取代為指定的值。

ChangeFlags(KeyEvent, KeyEventFlags)

建立與指定索引鍵事件相同的新索引鍵事件,但其旗標會取代為指定的值。

ChangeTimeRepeat(KeyEvent, Int64, Int32)

建立與指定索引鍵事件相同的新索引鍵事件,但其事件時間和重複計數會取代為指定的值。

ChangeTimeRepeat(KeyEvent, Int64, Int32, KeyEventFlags)

建立與指定索引鍵事件相同的新索引鍵事件,但其事件時間和重複計數會取代為指定的值。

Clone()

建立並傳回這個 物件的複本。

(繼承來源 Object)
DescribeContents()

描述這個可封送處理標記法中包含的特殊物件種類。

(繼承來源 InputEvent)
Dispatch(KeyEvent+ICallback)
Dispatch(KeyEvent+ICallback, KeyEvent+DispatcherState, Object)

將此金鑰事件傳遞至 回呼介面。

Dispose()

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
Dispose(Boolean)

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
GetDeadChar(Int32, Int32)

取得將輔色放在字元 c 所產生的字元。

GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
GetKeyData(KeyCharacterMap+KeyData)
已淘汰.

取得指定索引鍵碼的字元轉換資料。

GetMatch(Char[])

取得字元陣列中可由指定之索引鍵程式碼產生的第一個字元。

GetMatch(Char[], Int32)
已淘汰.

用來報告索引鍵和按鈕事件的物件。

GetMatch(Char[], MetaKeyStates)

取得字元陣列中可由指定之索引鍵程式碼產生的第一個字元。

GetUnicodeChar(Int32)
已淘汰.

用來報告索引鍵和按鈕事件的物件。

GetUnicodeChar(MetaKeyStates)

取得指定之索引鍵和中繼索引鍵狀態組合所產生的 Unicode 字元。

HasModifiers(MetaKeyStates)

如果只按下指定的修飾詞按鍵,則會傳回 true。

IsFromSource(InputSourceType)

判斷事件是否來自指定的來源。

(繼承來源 InputEvent)
IsGamepadButton(Keycode)

如果指定的按鍵碼是遊戲台按鈕,則會傳回 true。

IsMediaSessionKey(Int32)

傳回如果未處理,這個索引鍵是否會傳送至 android.media.session.MediaSession.Callback

IsModifierKey(Keycode)

如果此機碼是修飾詞索引鍵,則傳回 true。

JavaFinalize()

當垃圾收集判斷物件沒有其他參考時,由物件上的垃圾收集行程呼叫。

(繼承來源 Object)
KeyCodeFromString(String)

依符號名稱取得索引鍵碼,例如 「KEYCODE_A」 或相等的數值常數,例如 「29」。

KeyCodeToString(Keycode)

傳回字串,表示指定之索引鍵碼的符號名稱,例如 「KEYCODE_A」、「KEYCODE_DPAD_UP」,如果未知則為 「1001」。

MetaStateHasModifiers(MetaKeyStates, MetaKeyStates)

如果只根據指定的中繼狀態按下指定的修飾詞按鍵,則會傳回 true。

MetaStateHasNoModifiers(MetaKeyStates)

如果未根據指定的中繼狀態按下修飾詞按鍵,則會傳回 true。

NormalizeMetaState(MetaKeyStates)

正規化指定的中繼狀態。

Notify()

喚醒正在等候此物件的監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetSource(InputSourceType)

要新增

StartTracking()

在 期間 Callback#onKeyDown 呼叫此專案,讓系統透過其最終 (追蹤按鍵,可能包括長時間按下) 。

ToArray<T>()

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
Wait()

讓目前的執行緒等到喚醒為止,通常是藉由 < em > notified < /em > 或 < em > interrupted < /em > 來喚醒。

(繼承來源 Object)
Wait(Int64)

讓目前的執行緒等到喚醒為止,通常是 < 透過 em > notified < /em 或 em > interrupted < /em >> ,或 < 直到經過一定數量的即時為止。

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的執行緒等到喚醒為止,通常是 < 透過 em > notified < /em 或 em > interrupted < /em >> ,或 < 直到經過一定數量的即時為止。

(繼承來源 Object)
WriteToParcel(Parcel, ParcelableWriteFlags)

將這個 物件壓平合併至一個檔案。

明確介面實作

IJavaPeerable.Disposed()

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
IJavaPeerable.Finalized()

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

用來報告索引鍵和按鈕事件的物件。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

用來報告索引鍵和按鈕事件的物件。

GetJniTypeName(IJavaPeerable)

用來報告索引鍵和按鈕事件的物件。

適用於