那些被遗忘的按键-KEY

本文详细介绍了在Android中如何响应和处理物理按键,包括onKeyDown、onKeyUp、onBackPressed函数的使用,以及如何通过dispatchKeyEvent自定义按键行为,如屏蔽按键、创建组合键,特别讨论了home键、数字键和enter键的处理方式。
摘要由CSDN通过智能技术生成

一 编写目的

           随着android版本的升级,我们对物理按键需求越来越少了,以使用最为广泛的android设备—手机来说,一般现存的就三个按钮,menu、home、back。而在4.0以后,系统将home键的触发事件给干掉了,传不到应用层了,我们开发者能控制的按键是越来越少了。但是,还是有很多行业使用的android设备需要有按键,以便让操作变得更加快捷,就像我们经常可以看到的pos机,pda盘点枪等等。所以,按键对于处于某些行业开发的兄弟来说,还是不可或缺的。

二 响应按键的函数

         这里我主要介绍些常用的哈。

2.1 onKeyDown/onKeyUp/onBackPressed

         这三个按键监听的函数都用的比较普遍,其中:

a)onKeyDown:这个函数是监听按键按下时状态。

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
		log("onKeyDown");
		return super.onKeyDown(keyCode, event);
	}

这个函数入参为keycode和keyevent。其中keycode为按下按钮对应的keycode值(我们可以通过这个获取对应按键的code参照表),也可通过event.getKeyCode()获取按键的keycode。event为按键事件,其中包含多种属性,比如code、action等。

这个函数的返回值为boolean型。api上是这样描述的:Return true to prevent this event from being propagated further, orfalse to indicate that you have not handled this event and it should continue to be propagated.意思是说如果返回true,则表示你自己自定义了按键事件处理,按下事件到此结束,不会再调用系统的事件。如果返回false,则系统的事件照样会触发。这样我们就可以自己实现onKeyDown事件来达到自己的目的。例如:

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
		if (keyCode 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值