public abstract class MetaKeyKeyListener
extends Object
java.lang.Object | |
↳ | android.text.method.MetaKeyKeyListener |
Known Direct Subclasses |
Known Indirect Subclasses |
此基类封装了跟踪元键状态(如SHIFT,ALT和SYM)以及选择文本的伪元状态的行为。
关注元状态的关键听众应该从这个类继承; 你不应该直接在客户端实例化这个类。
该类提供了两种跟踪可以一起使用或独立使用的元状态的机制。
handleKeyDown(long, int, KeyEvent)
and getMetaState(long)
operate on a meta key state bit mask.onKeyDown(View, Editable, int, KeyEvent)
and getMetaState(CharSequence, int)
operate on meta key state flags stored as spans in an Editable
text buffer. The spans only describe the current meta key state of the text editor; they do not carry any positional information.此类的行为因键盘设备的 KeyCharacterMap
(如 KeyCharacterMap
所述的键盘功能而 key modifier behavior
。
MetaKeyKeyListener
实现了MetaKeyKeyListener
和切换键修饰符。 当键修饰符切换到锁定或锁定状态时,修饰符的状态存储在Editable
文本缓冲区中,或存储在由客户端管理的元状态整数中。 这些锁定或锁定的修饰符应该被认为是除了键盘已经被报告为在getMetaState()
被按下的那些之外的那些。 换句话说, MetaKeyKeyListener
增加了键盘提供的元状态; 它不会取代它。 这种区别是很重要的,以确保没有处理由Meta键MetaKeyKeyListener
如KEYCODE_CAPS_LOCK
或者KEYCODE_NUM_LOCK
考虑在内。
为确保正确的元键行为,在将键码映射到字符时应使用以下模式:
private char getUnicodeChar(TextKeyListener listener, KeyEvent event, Editable textBuffer) { // Use the combined meta states from the event and the key listener. int metaState = event.getMetaState() | listener.getMetaState(textBuffer); return event.getUnicodeChar(metaState); }
Constants |
|
---|---|
int |
META_ALT_LOCKED 表示ALT键被锁定的标志。 |
int |
META_ALT_ON 表示ALT键处于打开状态的标志。 |
int |
META_CAP_LOCKED 表示SHIFT键在CAPS模式下被锁定的标志。 |
int |
META_SHIFT_ON 表示SHIFT键打开的标志。 |
int |
META_SYM_LOCKED 表示SYM键已锁定的标志。 |
int |
META_SYM_ON 表示SYM键开启的标志。 |
Public constructors |
|
---|---|
MetaKeyKeyListener() |
Public methods |
|
---|---|
static void |
adjustMetaAfterKeypress(Spannable content) 处理按键后调用此方法,以便元状态将重置为未移位(如果尚未移位)或已准备好重设为未移位(一旦释放)。 |
static long |
adjustMetaAfterKeypress(long state) 处理按键后调用此方法,以便元状态将重置为未移位(如果尚未移位)或已准备好重设为未移位(一旦释放)。 |
static void |
clearMetaKeyState(Editable content, int states) |
long |
clearMetaKeyState(long state, int which) 如果指定的元键被锁定,则清除其状态。 |
void |
clearMetaKeyState(View view, Editable content, int states) |
static final int |
getMetaState(CharSequence text) 获取元键的状态。 |
static final int |
getMetaState(CharSequence text, int meta) 获取特定元键的状态。 |
static final int |
getMetaState(long state) 获取元键的状态。 |
static final int |
getMetaState(CharSequence text, KeyEvent event) 获取特定按键事件的元键的状态。 |
static final int |
getMetaState(long state, int meta) 获取特定元键的状态。 |
static final int |
getMetaState(CharSequence text, int meta, KeyEvent event) 获取特定元键的状态以用于特定键事件。 |
static long |
handleKeyDown(long state, int keyCode, KeyEvent event) 处理元键的按下。 |
static long |
handleKeyUp(long state, int keyCode, KeyEvent event) 处理元键的释放。 |
static boolean |
isMetaTracker(CharSequence text, Object what) 如果此对象是此类将用于跟踪指定文本中的任何元状态的对象,则返回true。 |
static boolean |
isSelectingMetaTracker(CharSequence text, Object what) 如果此对象是此类将用于跟踪指定文本中的选定元状态的对象,则返回true。 |
boolean |
onKeyDown(View view, Editable content, int keyCode, KeyEvent event) 处理元键的按下。 |
boolean |
onKeyUp(View view, Editable content, int keyCode, KeyEvent event) 处理元键的释放。 |
static long |
resetLockedMeta(long state) 如果您是一种忽略锁定元状态(例如箭头键)并处理密钥的方法,请调用此方法。 |
static void |
resetMetaState(Spannable text) 将所有元状态重置为非活动状态。 |
Protected methods |
|
---|---|
static void |
resetLockedMeta(Spannable content) 如果您是一种忽略锁定元状态(例如箭头键)并处理密钥的方法,请调用此方法。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int META_ALT_ON
表示ALT键处于打开状态的标志。 值等于META_ALT_ON
。
常量值:2(0x00000002)
int META_CAP_LOCKED
表示SHIFT键在CAPS模式下被锁定的标志。
常量值:256(0x00000100)
int META_SHIFT_ON
表示SHIFT键打开的标志。 值等于META_SHIFT_ON
。
常数值:1(0x00000001)
void adjustMetaAfterKeypress (Spannable content)
处理按键后调用此方法,以便元状态将重置为未移位(如果尚未移位)或已准备好重设为未移位(一旦释放)。
Parameters | |
---|---|
content |
Spannable
|
long adjustMetaAfterKeypress (long state)
处理按键后调用此方法,以便元状态将重置为未移位(如果尚未移位)或已准备好重设为未移位(一旦释放)。 采取当前状态,返回新状态。
Parameters | |
---|---|
state |
long
|
Returns | |
---|---|
long |
void clearMetaKeyState (Editable content, int states)
Parameters | |
---|---|
content |
Editable
|
states |
int
|
long clearMetaKeyState (long state, int which)
如果指定的元键被锁定,则清除其状态。
Parameters | |
---|---|
state |
long : the meta key state |
which |
int : meta keys to clear, may be a combination of META_SHIFT_ON , META_ALT_ON or META_SYM_ON . |
Returns | |
---|---|
long |
void clearMetaKeyState (View view, Editable content, int states)
Parameters | |
---|---|
view |
View
|
content |
Editable
|
states |
int
|
int getMetaState (CharSequence text)
获取元键的状态。
Parameters | |
---|---|
text |
CharSequence : the buffer in which the meta key would have been pressed. |
Returns | |
---|---|
int |
an integer in which each bit set to one represents a pressed or locked meta key. |
int getMetaState (CharSequence text, int meta)
获取特定元键的状态。
Parameters | |
---|---|
text |
CharSequence : the buffer in which the meta key would have been pressed. |
meta |
int : META_SHIFT_ON, META_ALT_ON, META_SYM_ON |
Returns | |
---|---|
int |
0 if inactive, 1 if active, 2 if locked. |
int getMetaState (long state)
获取元键的状态。
Parameters | |
---|---|
state |
long : the current meta state bits. |
Returns | |
---|---|
int |
an integer in which each bit set to one represents a pressed or locked meta key. |
int getMetaState (CharSequence text, KeyEvent event)
获取特定按键事件的元键的状态。 对于使用切换键修饰符的输入设备,“切换”状态存储在文本缓冲区中。 此方法检索此事件的元状态,说明存储的状态。 如果事件是由不支持切换键修饰符的设备(例如虚拟设备)创建的,则存储状态将被忽略。
Parameters | |
---|---|
text |
CharSequence : the buffer in which the meta key would have been pressed. |
event |
KeyEvent : the event for which to evaluate the meta state. |
Returns | |
---|---|
int |
an integer in which each bit set to one represents a pressed or locked meta key. |
int getMetaState (long state, int meta)
获取特定元键的状态。
Parameters | |
---|---|
state |
long : the current state bits. |
meta |
int : META_SHIFT_ON, META_ALT_ON, or META_SYM_ON |
Returns | |
---|---|
int |
0 if inactive, 1 if active, 2 if locked. |
int getMetaState (CharSequence text, int meta, KeyEvent event)
获取特定元键的状态以用于特定键事件。 如果键事件是由不支持切换键修饰符的设备创建的,例如虚拟键盘,则只考虑键事件中的元状态。
Parameters | |
---|---|
text |
CharSequence : the buffer in which the meta key would have been pressed. |
meta |
int : META_SHIFT_ON, META_ALT_ON, META_SYM_ON |
event |
KeyEvent : the event for which to evaluate the meta state. |
Returns | |
---|---|
int |
0 if inactive, 1 if active, 2 if locked. |
long handleKeyDown (long state, int keyCode, KeyEvent event)
处理元键的按下。
Parameters | |
---|---|
state |
long
|
keyCode |
int
|
event |
KeyEvent
|
Returns | |
---|---|
long |
long handleKeyUp (long state, int keyCode, KeyEvent event)
处理元键的释放。
Parameters | |
---|---|
state |
long
|
keyCode |
int
|
event |
KeyEvent
|
Returns | |
---|---|
long |
boolean isMetaTracker (CharSequence text, Object what)
如果此对象是此类将用于跟踪指定文本中的任何元状态的对象,则返回true。
Parameters | |
---|---|
text |
CharSequence
|
what |
Object
|
Returns | |
---|---|
boolean |
boolean isSelectingMetaTracker (CharSequence text, Object what)
如果此对象是此类将用于跟踪指定文本中的选定元状态的对象,则返回true。
Parameters | |
---|---|
text |
CharSequence
|
what |
Object
|
Returns | |
---|---|
boolean |
boolean onKeyDown (View view, Editable content, int keyCode, KeyEvent event)
处理元键的按下。
Parameters | |
---|---|
view |
View
|
content |
Editable
|
keyCode |
int
|
event |
KeyEvent
|
Returns | |
---|---|
boolean |
boolean onKeyUp (View view, Editable content, int keyCode, KeyEvent event)
处理元键的释放。
Parameters | |
---|---|
view |
View
|
content |
Editable
|
keyCode |
int
|
event |
KeyEvent
|
Returns | |
---|---|
boolean |
long resetLockedMeta (long state)
如果您是一种忽略锁定元状态(例如箭头键)并处理密钥的方法,请调用此方法。
Parameters | |
---|---|
state |
long
|
Returns | |
---|---|
long |
void resetMetaState (Spannable text)
将所有元状态重置为非活动状态。
Parameters | |
---|---|
text |
Spannable
|
void resetLockedMeta (Spannable content)
如果您是一种忽略锁定元状态(例如箭头键)并处理密钥的方法,请调用此方法。
Parameters | |
---|---|
content |
Spannable
|