当前位置: 代码迷 >> Android >> 2011.09.23(二)——— android sample之Notepad(setDefaultKeyMode)
  详细解决方案

2011.09.23(二)——— android sample之Notepad(setDefaultKeyMode)

热度:94   发布时间:2016-05-01 19:00:28.0
2011.09.23(2)——— android sample之Notepad(setDefaultKeyMode)
2011.09.23(2)——— android sample之Notepad(setDefaultKeyMode)
参考:http://blog.csdn.net/silenceburn/article/details/6069645
http://blog.csdn.net/jimhard718/article/details/6191078



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

mode一共有五种

DEFAULT_KEYS_DISABLEDEFAULT_KEYS_DIALERDEFAULT_KEYS_SHORTCUTDEFAULT_KEYS_SEARCH_LOCALDEFAULT_KEYS_SEARCH_GLOBAL



DEFAULT_KEYS_DISABLE 直接丢弃,这种情况你把键盘按穿了也不会有系统理你DEFAULT_KEYS_DIALER将键盘事件传入拨号器进行处理,例如如下代码:DEFAULT_KEYS_SHORTCUT:将键盘输入作为当前窗体上注册的快捷键,进行快捷键处理,DEFAULT_KEYS_SEARCH_LOCAL:将键盘输入作为搜索内容,进行本地搜索,如果本地没有实现自定义搜索,则使用全局搜索DEFAULT_KEYS_SEARCH_GLOBAL:将键盘输入作为搜索内容,进行全局搜索


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

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


setDefaultKeyMode(DEFAULT_KEYS_SHORTCUT);

就是打开快捷方式

我们上一篇里面menu里面 就可以用这个 为menu定义一个快捷方式
@Override	public boolean onCreateOptionsMenu(Menu menu) {		System.out.println("create options menu");		menu.add(0, MENU1, 0, "关于").setShortcut('1', 'b');		menu.add(0, MENU2, 0, "主页");		return super.onCreateOptionsMenu(menu);	}



setShortcut(char numericChar, char alphaChar)

两个参数来设定两个快捷键是为了应对不同的手机键盘。
第一个参数:数字快捷键为12键键盘(0~9,*,#,共12个按键)
第二个参数:全键盘

在模拟器 起作用的是第二个参数 因为模拟器的是全键盘

这个设置快捷方式 貌似支队option menu起作用 对context menu没有作用 貌似

  相关解决方案