Android UI 事件

本文介绍了在Java和Android中如何通过事件与输入设备交互。Android中的UI事件由操作系统生成,并发送给相应的View对象。文章详细阐述了事件监听器和回调方法,如onClick()、onLongClick()等,以及如何通过设置descendantFocusability属性处理焦点问题,防止子控件抢夺父控件的焦点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android UI 事件  
在Java和android中,通过事件来与各种输入设备进行沟通。  
事件是由OS产生的消息,当某个UI元素被用户以特定方式进行操作时,OS就会将事件消息发送给相应的View对象。
监听及事件处理  
“处理”(Handle)与“处理程序”(Handler)View类处理UI事件  
在应用程序中,每一个UI元素都是彼此不同的实例化View对象,每一个对象都包含专属于该View对象的事件。  
在布局中,一个View对象是通过公共的回调(Callback)方法来与应用程序的其它部分进行沟通的,当某一个特定动作发生在该UI的View对象中时,Android就会调用指定的回调方法。  
在Android中提供了一套事件处理接口。在View类中嵌套了这些事件接口,通过它们可以定义回调方法。因为,它们是OS的一部分,组成了View类及其所有的方法。在View类中嵌套的接口就是事件监听器。  
事件回调方法:  
事件监听器就是View类中的一个Java接口,里面包含了一个单独的回调方法。以下就是在Android中常用的回调方法:onClick():来自View.OnClickListener类,在触摸屏幕或者点击UI元素时触发。onLongClick():来自View.OnLongCliclListener类,触摸或按钮某个UI元素超过1秒触发。onKey():来自View.OnKeyListener类,按下或释放键盘时触发。onTouch():来自View.OnTouchListener类,在触摸、释放、手势事件时触发。onFocusChange():来自View.OnFocusChange类,在焦点改变时触发。onContextMenu():来自View.OnTouchListener类,上下文菜单。
事件焦点  
当使用listView时,在view中添加button等控件,子控件会抢夺父控件的事件焦点,在父控件使用descendantFocusability属性设置其子控件不抢夺父控件事件焦点。  
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点 blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值