Activity中的setDefaultKeyMode()

来源:互联网 发布:李聪明 知乎 编辑:程序博客网 时间:2024/06/05 09:29

如果在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以后,再次点击数字键,会启动本地搜索的功能,我想就是设置默认的按钮模式的问题。默认没反应,设置以后产生对应的操作。

原创粉丝点击