实现监听事件常用的五种方式 您所在的位置:网站首页 js键盘监听事件的代码有哪些类型 实现监听事件常用的五种方式

实现监听事件常用的五种方式

2024-01-06 21:36| 来源: 网络整理| 查看: 265

什么是监听事件?

监听事件就是等待某个事件的发生,当这个事件发生之后,对其做出一个响应。如:鼠标单击一个按钮,单击按钮时打开一个新的页面,或者双击桌面的应用图标,运行一个程序,这都是监听事件的应用。

监听三要素 Event Source(事件源):监听的目标,假如我们给Button设置一个点击事件,那么Button就为事件源Event(事件):发生的事件,不同的事件需要相应的事件监听器进行处理,点击、触摸、按下等都是事件Event Listener(事件监听器):不同的事件监听器处理不同的监听事件 实例:

实例需求:

新建一个项目,在布局中添加一个按钮,给按钮设置监听事件,点击按钮,弹出一段提示文字(文字自定义)

需求分析:

1、添加按钮 2、设置监听事件

实例中是给Button设置一个点击事件,所以通过.setOnClickListener( )方法来进行设置,在设置之前我们要先创建事件,实现监听事件方法有很多,主要有以下五种:

2.1通过内部类实现:

找到声明控件,再编写一个内部类OnClick实现View.OnClickListener接口,为了提高代码的复用性,在该类中添加一个switch判断语句,通过view.getId( )方法获取到控件的id,根据id执行相应控件的监听事件,在监听事件中使用Toast弹出提示信息,创建好事件后,需要新建一个事件对象,再通过.setOnClickListener( )方法给Button添加该事件,如下:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button mButton = findViewById(R.id.btn); OnClick onClick = new OnClick(); mButton.setOnClickListener(onClick); } class OnClick implements View.OnClickListener { @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn: Toast.makeText(MainActivity.this, "通过内部类实现", Toast.LENGTH_SHORT).show(); break; } } } }

实例演示

2.2通过匿名内部类实现

匿名内部类实现监听事件时这几种方法中最简单,代码量最少的实现方式,该类方法也是通过.setOnClickListener( )方法设置,在该方法中直接创建一个系统提供的View.OnClickListener( )对象,在该对象中编写监听事件,代码如下:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button mButton = findViewById(R.id.btn); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "匿名内部类实现", Toast.LENGTH_SHORT).show(); } }); } }

 实例演示

2.3外部类实现

创建一个类,实现View.OnClickListener接口,在该类中定义一个Activity类型的实例mActivity(因为这是一个公共类,所以可能在不同的Activity中被调用,使用mActivity接收调用的Activity,在监听事件中的Toast语句中传入Activity),在构造方法中传入,再重写onClick( )方法,在该方法中添加switch提高方法的复用性,在监听事件中使用Toast语句弹出提示信息。代码如下:

public class MyClick implements View.OnClickListener { private Activity mActivity; //创建一个构造方法,传入参数Activity public MyClick(Activity activity) { this.mActivity = activity; } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn: Toast.makeText(mActivity, "外部类实现", Toast.LENGTH_LONG).show(); break; } } } public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button mButton = findViewById(R.id.btn); mButton.setOnClickListener(new MyClick(MainActivity.this)); } }

实例演示

2.4通过事件源所在类实现

这个实例中,我们是给Button设置点击事件,所以事件源就为Button,而Button所在类为MainActivity,所以通过事件源所在类实现,只需要给MainActivity实现View.OnClickListener接口,在MainActivity中重写View.OnClickListener的onClick( )方法,如下:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button mButton = findViewById(R.id.btn); mButton.setOnClickListener(MainActivity.this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.btn: Toast.makeText(this, "事件所在类实现", Toast.LENGTH_SHORT).show(); break; } } }

实例演示

2.5通过onClick属性实现

在Button控件中有一个"onClick"属性,是用于给Button控件设置监听事件,创建一个监听事件作为属性值传入,代码如下:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void show(View view){ switch (view.getId()){ case R.id.btn: Toast.makeText(this, "onClick属性实现", Toast.LENGTH_SHORT).show(); } } }

实例演示

总结: 监听三要素:Event Source(事件源)、Event(事件)、Event Listener(事件监听器)常用的五种监听方式的实现方式 :内部类、匿名内部类、外部类、事件源所在类、onClick属性


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有