您的位置:首页 > 移动开发 > Android开发

Android的事件处理之监听与回调

2015-08-16 14:07 351 查看
Android的事件处理机制:

基于监听的事件处理

基于回调的事件处理

监听:

为Android的组件绑定特定的事件监听器,当触发相应的事件时,会调用这些方法;

三个对象:

1.事件源 也就是事件发生的场所,通常为各个组件

2.事件

3.事件监听器

事件监听的四种方法:

当控件调用setOnClickListener()的时候,需要传入一个OnClickListener的参数。通过查看源代码,我们会发现,OnClickListener是一个接口。

所以,我们可以考虑三种方式来实现这个接口的功能:

1.创建一个外部类,实现接口:

例:

public class ClickOkListener implements OnClickListener
{
//重写OnClick方法
}
//**************************************//
//在Activity中调用
btn.setOnClickListener(new ClickOkListener)


2.匿名内部类的方式

例:

btn.setOnClickListener(new OnClickListener(){
onClick()
{
//处理事件
}
});


3.Activity作为事件监听器

(1).btn.setOnCLickListener(this)

(2).让Activity implements OnCLickListener

(3).在Activity中重写onClick方法

此外,Android还允许开发者通过在xml中设置onClick属性来绑定点击事件的处理。

回调:

处理Android组件特定的回调方法。

回调的事件处理模型中,事件源和事件监听器进行统一,当用户触发该事件的时候,组件中自己特定的方法会处理该事件。

View类中常用的回调方法:

onKeyDown 按键被按下

onKeyLongPress 按键被长按

onKeyUp 按键被松开

onTouchEvent 触发触摸屏事件

回调事件的操作步骤:

1.自定义控件类

2.在自定义的控件中重写父类的回调方法

3.在xml布局文件中,直接使用自定义控件

补充:几乎每一个事件处理方法都有布尔类型的返回值,用于标示该处理方法是否完全处理该事件。

如果返回true,则处理事件,不把事件传递出去。

如果返回false,则不处理事件,并把事件传递下去。

事件处理的先后顺序:

1.监听

2.回调

3.当前的Activity
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android