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()非零值。 最后一个 #ACTION_UP 键事件是键向上键。 如果按下键已取消,则键上事件将设置 #FLAG_CANCELED 标志。
关键事件通常附带键代码(#getKeyCode())、扫描代码(#getScanCode())和元状态(#getMetaState())。 此类中定义了键代码常量。 扫描代码常量是从 OS 获取的原始设备特定代码,因此通常对应用程序没有意义,除非使用 #META_SHIFT_ON 或 #META_ALT_ON) 的按下状态。
密钥代码通常与输入设备上的单个密钥对应一对一。 许多键和键组合在不同的输入设备上提供完全不同的功能,因此在解释它们时必须小心。 将键映射到字符时, KeyCharacterMap 始终使用与输入设备关联的项。 请注意,可能有多个密钥输入设备同时处于活动状态,并且每个设备都有其自己的键字符映射。
由于软输入方法可以使用多种创造性的输入方式来输入文本,因此不能保证软键盘上的任何按键都会生成键事件:这留给 IME 的自由裁量权,实际上发送此类事件是不建议的。 对于软输入方法上的任何密钥,不应依赖接收 KeyEvents。 特别是,默认软件键盘永远不会将任何键事件发送到任何面向 Jelly Bean 或更高版本的应用程序,并且只会向面向冰淇淋三明治或更早的应用程序发送删除和返回键的事件。 请注意,无论版本如何,其他软件输入方法都永远不会发送密钥事件。 请考虑使用编辑器操作,例如 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 属性许可证中所述的术语使用。
构造函数
| 名称 | 说明 |
|---|---|
| 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) |
创建新的密钥事件。 |
字段
| 名称 | 说明 |
|---|---|
| KeycodeAccessibility |
已过时.
密钥代码常量:系统辅助功能密钥。 |
| KeycodeClose |
已过时.
键代码常量:AC Close。 |
| 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 New。 |
| KeycodePrint |
已过时.
关键代码常量:打印。 |
| KeycodeRecentApps |
已过时.
关键代码常量:打开最近的应用视图(a. |
| KeycodeScreenshot |
已过时.
关键代码常量:拍摄屏幕截图。 |
| KeycodeStylusButtonPrimary |
已过时.
键代码常量:触笔桶上的主按钮。 |
| KeycodeStylusButtonSecondary |
已过时.
键代码常量:触笔桶上的辅助按钮。 |
| KeycodeStylusButtonTail |
已过时.
键代码常量:触笔尾端上的按钮。 |
| KeycodeStylusButtonTertiary |
已过时.
关键代码常量:触笔桶上的第三步按钮。 |
| KeycodeVideoApp1 |
已过时.
密钥代码常量:视频应用程序密钥 #1。 |
| KeycodeVideoApp2 |
已过时.
密钥代码常量:视频应用程序密钥 #2。 |
| KeycodeVideoApp3 |
已过时.
密钥代码常量:视频应用程序密钥 #3。 |
| KeycodeVideoApp4 |
已过时.
密钥代码常量:视频应用程序密钥 #4。 |
| KeycodeVideoApp5 |
已过时.
密钥代码常量:视频应用程序密钥 #5。 |
| KeycodeVideoApp6 |
已过时.
密钥代码常量:视频应用程序密钥 #6。 |
| KeycodeVideoApp7 |
已过时.
密钥代码常量:视频应用程序密钥 #7。 |
| KeycodeVideoApp8 |
已过时.
密钥代码常量:视频应用程序密钥 #8。 |
| MaxKeycode |
已过时.
指定此 API 级别定义的最大密钥代码。 |
属性
| 名称 | 说明 |
|---|---|
| Action |
检索此密钥事件的操作。 |
| Characters |
对于具有键代码 |
| Class |
返回此 |
| Creator |
获取 KeyEvent 实例的可包裹创建者。 |
| Device |
获取此事件来自的设备。 (继承自 InputEvent) |
| DeviceId |
获取此事件来自的设备 ID。 零的 ID 表示事件不是来自物理设备,并且映射到默认键映射。 其他数字是任意的,不应依赖于这些值。 |
| DisplayLabel |
获取此键的主字符。 |
| DownTime |
在时间基中 |
| EventTime |
检索发生此事件的时间( |
| Flags |
返回此键事件的标志。 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| HasNoModifiers |
如果未按下任何修饰键,则返回 true。 |
| IsAltPressed |
返回 ALT 元键的按下状态。 |
| IsCanceled |
对于 |
| IsCapsLockOn |
返回 CAPS LOCK 元键的锁定状态。 |
| IsCtrlPressed |
返回 Ctrl 元键的按下状态。 |
| IsFunctionPressed |
返回 FUNCTION 元键的按下状态。 |
| IsLongPress |
对于 |
| IsMetaPressed |
返回 META 元键的按下状态。 |
| IsNumLockOn |
返回 NUM LOCK 元键的锁定状态。 |
| IsPrintingKey |
如果此键生成字形,则返回 true。 |
| IsScrollLockOn |
返回 SCROLL LOCK 元键的锁定状态。 |
| IsShiftPressed |
返回 SHIFT 元键的按下状态。 |
| IsSymPressed |
返回 SYM 元键的按下状态。 |
| IsSystem |
这是系统密钥吗? 系统键不能用于菜单快捷方式。 |
| IsTracking |
对于 |
| JniIdentityHashCode |
获取互操作运行时分配给此Java对等的标识哈希代码。 (继承自 Object) |
| JniManagedPeerState |
用于报告键和按钮事件的对象。 (继承自 JavaObject) |
| JniPeerMembers |
获取用于 Android 绑定运行时的.NET使用的 JNI 对等元数据。 |
| KeyCharacterMap |
获取 |
| KeyCode |
检索密钥事件的键代码。 |
| MaxKeyCode |
返回最大键码。 |
| MetaState |
返回元键的状态。 |
| ModifierMetaStateMask |
获取包含所有有效修饰键元状态位的掩码。 |
| Modifiers |
返回修饰键的状态。 |
| Number |
获取与键关联的数字或符号。 |
| PeerReference |
获取此Java对等方的 JNI 对象引用。 (继承自 Object) |
| RepeatCount |
检索事件的重复计数。 |
| ScanCode |
检索此密钥事件的硬件密钥 ID。 |
| Source |
获取事件源。 |
| ThresholdClass |
获取.NET用于 Android 绑定运行时的 JNI 类句柄。 |
| ThresholdType |
获取 android 绑定运行时.NET使用的托管类型。 |
| UnicodeChar |
获取由指定键和元键状态组合生成的 Unicode 字符。 |
方法
| 名称 | 说明 |
|---|---|
| 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) |
获取通过将重音放在字符 c 上生成的字符。 |
| GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
| GetKeyData(KeyCharacterMap+KeyData) |
已过时.
获取给定密钥代码的字符转换数据。 |
| GetMatch(Char[], Int32) |
已过时.
获取此键事件可以使用给定元状态生成的第一个候选字符。 |
| GetMatch(Char[], MetaKeyStates) |
获取字符数组中可由指定键代码生成的第一个字符。 |
| GetMatch(Char[]) |
获取字符数组中可由指定键代码生成的第一个字符。 |
| GetUnicodeChar(Int32) |
已过时.
获取具有指定元状态的此键事件生成的 Unicode 字符。 |
| GetUnicodeChar(MetaKeyStates) |
获取由指定键和元键状态组合生成的 Unicode 字符。 |
| HasModifiers(MetaKeyStates) |
如果仅按下指定的修饰符键,则返回 true。 |
| IsFromSource(InputSourceType) |
确定事件是否来自给定源。 (继承自 InputEvent) |
| IsGamepadButton(Keycode) |
如果指定的键码是游戏板按钮,则返回 true。 |
| IsMediaSessionKey(Int32) |
返回是否将此密钥发送到 |
| 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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
用于报告键和按钮事件的对象。 (继承自 JavaObject) |
| SetSource(InputSourceType) |
设置生成此密钥事件的输入源。 |
| StartTracking() |
调用这一点 |
| ToArray<T>() |
从此Java数组包装器创建托管数组。 (继承自 Object) |
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| UnregisterFromRuntime() |
从互操作运行时取消注册此Java对等。 (继承自 Object) |
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><> (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
将此对象平展到一个地块。 |
显式接口实现
| 名称 | 说明 |
|---|---|
| IJavaPeerable.Disposed() |
用于报告键和按钮事件的对象。 (继承自 JavaObject) |
| IJavaPeerable.Finalized() |
用于报告键和按钮事件的对象。 (继承自 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
用于报告键和按钮事件的对象。 (继承自 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
用于报告键和按钮事件的对象。 (继承自 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
用于报告键和按钮事件的对象。 (继承自 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
用于报告键和按钮事件的对象。 (继承自 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
从运行时的Java对象查找中删除此实例。 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
用于报告键和按钮事件的对象。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |