您的位置:首页 > 其它

Activity中的setDefaultKeyMode()

2012-07-23 10:26 218 查看
如果在Activity中的onCreate()方法中使用setDefaultKeyMode()可以做到在当前activity中打开拨号器、执行快捷键、启动本地搜索、启动全局搜索。

这个启动啥,要看setDefaultKeyMode中传了啥参数,不同的参数见下:

/**
* Use with {@link #setDefaultKeyMode} to turn off default handling of
* keys.
*
* @see #setDefaultKeyMode
*/
static public final int DEFAULT_KEYS_DISABLE = 0; //如果设为这个,则在activity中按键的不做响应
/**
* Use with {@link #setDefaultKeyMode} to launch the dialer during default
* key handling.
*
* @see #setDefaultKeyMode
*/
static public final int DEFAULT_KEYS_DIALER = 1; //如果设为这个,则在activity中按键会打开拨号器

/**
* Use with {@link #setDefaultKeyMode} to execute a menu shortcut in
* default key handling.
*
* <p>That is, the user does not need to hold down the menu key to execute menu shortcuts.
*
* @see #setDefaultKeyMode
*/
static public final int DEFAULT_KEYS_SHORTCUT = 2; //如果设为这个,则在activity中按键会启动快键键
/**
* Use with {@link #setDefaultKeyMode} to specify that unhandled keystrokes
* will start an application-defined search.  (If the application or activity does not
* actually define a search, the the keys will be ignored.)
*
* <p>See {@link android.app.SearchManager android.app.SearchManager} for more details.
*
* @see #setDefaultKeyMode
*/
static public final int DEFAULT_KEYS_SEARCH_LOCAL = 3; //如果设为这个,则在activity中按键会打开本地搜索

/**
* Use with {@link #setDefaultKeyMode} to specify that unhandled keystrokes
* will start a global search (typically web search, but some platforms may define alternate
* methods for global search)
*
* <p>See {@link android.app.SearchManager android.app.SearchManager} for more details.
*
* @see #setDefaultKeyMode
*/
static public final int DEFAULT_KEYS_SEARCH_GLOBAL = 4; //如果设为这个,则在activity中按键会打开全局搜索


Select the default key handling for this activity. This controls what will happen to key events that are not otherwise handled(没有操纵的按键,在局部搜索是,我没设置之前,点击数字键是没有反应的,但是我点击以后,数字键就会自动搜索对应的点击的数字按键). The default mode (
DEFAULT_KEYS_DISABLE
)
will simply drop them on the floor. Other modes allow you to launch the dialer (
DEFAULT_KEYS_DIALER
), execute a shortcut in your options menu without
requiring the menu key be held down (
DEFAULT_KEYS_SHORTCUT
), or launch a search (
DEFAULT_KEYS_SEARCH_LOCAL

and
DEFAULT_KEYS_SEARCH_GLOBAL
).

Note that the mode selected here does not impact the default handling of system keys(因为起作用的都是以前没有handled的按键,比如数字键之类的。), such as the "back" and "menu" keys, and your activity and its views always get a first chance to receive and handle all application keys.

Parameters
modeThe desired default key mode constant.
See Also

DEFAULT_KEYS_DISABLE

DEFAULT_KEYS_DIALER

DEFAULT_KEYS_SHORTCUT

DEFAULT_KEYS_SEARCH_LOCAL

DEFAULT_KEYS_SEARCH_GLOBAL

onKeyDown(int, KeyEvent)


再总结一下:setDefaultKeyMode的默认值是:DEFAULT_KEYS_DISABLE;所以点击一些数字键之类的没有反应,但是设置了DEFAULT_KEY_SEARCH_LOCAL以后,再次点击数字键,会启动本地搜索的功能,我想就是设置默认的按钮模式的问题。默认没反应,设置以后产生对应的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: