本文主要用于区分基于监听的事件处理机制&基于接口回调的事件处理机制这两种事件处理机制的差异:
事件处理: 当用户在应用界面上执行各种操作的时候应用程序为用户的动作提供响应的过程
- 基于监听的事件处理机制
- 基于接口回调的事件处理机制
监听的三要素:
1.Event Source:事件源(一般都是控件
2.Event:事件(如点击、触摸等
3.Event Listener:事件监听器(设置linstener
基于监听的事件处理机制:
事件源与监听器分离,当给同一个事件源(控件)设置同种类型的监听器时(如都是点击事件的监听),系统只会响应最后设置的那个监听,其余的都不会执行 且在布局中的onclick属性如果最先设置,但如果还设置了其他的监听器,onclick就不会被执行
优先级: 最先设置的监听>其他类型监听>onclick属性设置的监听
实现监听事件的方式:*
- 通过内部类实现
- 通过匿名内部类实现
- 通过事件源所在的类实现
- 通过外部类实现
- 通过布局文件中的onClick属性实现(针对点击事件)
1、通过内部类实现
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_event);
mBtnEvent=findViewById(R.id.btn_event);
mBtnEvent.setOnClickListener(new Onclick());
}
class Onclick implements View.OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_event:
ToastUtil.showMsg(EventActivity.this,"click^");
break;
}