首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

setDefaultKeyMode 用法引见

2012-08-25 
setDefaultKeyMode 用法介绍转载:http://blog.csdn.net/silenceburn/archive/2010/12/11/6069645.aspxsetD

setDefaultKeyMode 用法介绍
转载:http://blog.csdn.net/silenceburn/archive/2010/12/11/6069645.aspx

setDefaultKeyMode (int mode) 用来设置一个Activity的默认的按键模式,

也就是指这种情况,当Activity中发生了一些按键事件,但是这些事件没有被任何控件Listen到时(截获时),

系统应该如何处理这些按键事件。

mode一共有五种

DEFAULT_KEYS_DISABLE
DEFAULT_KEYS_DIALER
DEFAULT_KEYS_SHORTCUT
DEFAULT_KEYS_SEARCH_LOCAL
DEFAULT_KEYS_SEARCH_GLOBAL
first of all,首先要告诉大家一个不幸的消息,上述的默认键动作完全不支持中文。

也就是说如果处于中文输入状态,那么按键都会被理解为试图输入中文,而当输入完成后产生的中文,也不会进行默认按键处理。

所以在我下面的例子中,如果必要,我会呼出软键盘把输入模式改为英文。

以下分别解释

DEFAULT_KEYS_DISABLE

直接丢弃,这种情况你把键盘按穿了也不会有系统理你

 

DEFAULT_KEYS_DIALER

将键盘事件传入拨号器进行处理,例如如下代码:






注意这是一个我们自定义的搜索,标题被我改为了My Search (注意这里我没有添加自定义搜索建议栏)

DEFAULT_KEYS_SEARCH_GLOBAL:

将键盘输入作为搜索内容,进行全局搜索

保证当前处于英文输入模式,可以通过呼出一个软键盘来改变当前输入模式。

确保上述要求实现后,我们输入任意按键,会发现系统直接呼出系统的全局搜索界面(也就是google的web搜索),如下图所示:






注意已经没有了My Search字样,而且全局搜索是有搜索建议栏的。(当然自定义搜索也可以实现自定义搜索建议栏)

总结:

Activity提供的默认按键功能其实非常强大,可以把默认按键传入拨号、传入搜索、作为菜单快捷键等等,

在特定的应用场景下,会带来一些非常神奇和良好的用户感受。

但是非常可惜的是,完全不支持中文,因此对于我们中国开发者来讲,其实用性几乎等于零了。

所以导致其资料非常稀少,在我研究这功能的几天里,找遍全网都没找到什么相关的文章。

不过了解其特殊的功能和用法,也许在一些特定的应用场景下,会带来意外的便利呢。

热点排行