Android教程:Android事件监听器

时间:2020-02-23 14:28:43  来源:igfitidea点击:

本Android教程解释了Android的一个非常重要的部分,即事件监听器(Event Listeners)。

Android教程:什么是侦听器?

Android侦听器用于捕获事件。
例如,当用户通过单击按钮与Android系统进行交互时,侦听器将提示基础活动执行与按钮单击相关的任务。

因此,每当我们希望Android系统执行任务时(发生事件时),侦听器就会起作用。
在Android系统中,侦听器有20多个,但更频繁一些。
在本Android教程中,我们将仅坚持基础知识。

最常用的侦听器是什么?

以下是最常用的基本侦听器:

  • OnClickListener

  • OnTouchListener

  • OnDateSetListener

1. OnClickListener

如果要在单击时执行任务,则使用OnClickListener。

示例:单击按钮时,toast将显示点击次数。

这是此示例的代码:

a)在onCreate方法之外全局声明一个变量:

//Declaring the variable to count the number of clicks
			int count = 0;

b)在onCreate方法中实现以下内容。
其中我们在Button上设置一个OnClickListener:

//Declaring the Button and Type Casting it.
		Button btn1 = (Button) findViewById(R.id.button1);
		//Setting OnClickListener on btn1
		btn1.setOnClickListener(new OnClickListener() {
			@Override
		public void onClick(View v) {
			//Executing the following code on the click
//Incrementing the variable count by 1 on the click of the button
			count++;
//Displaying the count using a Toast Toast.makeText(MainActivity.this,
"The button has been clicked " + count +     " times",Toast.LENGTH_SHORT).show();
		}
	});

2. Android OnTouchListener

OnTouchListener用于捕获触摸事件并执行与之关联的任务。

示例:在触摸按钮时,将显示一个吐司及其计数(发生触摸事件的次数)。

这是上面示例的代码:

a)在onCreate方法之外全局声明一个变量:

//Declaring the variable to count the number of clicks
			int count = 0;

b)在onCreate方法中实现以下内容。
其中我们在按钮上设置一个OnTouchListener:

//Declaring the Button and Type Casting it.
		Button btn1 = (Button) findViewById(R.id.button1);
		//Setting OnTouchListener on btn1
		btn1.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View v, MotionEvent event) {
			//Incrementing the variable count by 1 on every Touch
				count++;
				Toast.makeText(MainActivity.this,
"The button has been touched " + count  + " times",Toast.LENGTH_SHORT).show();
				return false;
			}
		});

3. OnDateSetListener

它用于从DatePicker小部件中获取选定的日期。

示例:在按钮上单击,将显示一个DatePickerDialog,我们可以从中选择一个日期。
做出选择后,单击"完成"按钮,将显示带有所选日期的祝酒词。

这是上面示例的代码:

//Declaring a button and the DatePickerDialog
private Button btnDatePicker;
	DatePickerDialog _date;

在onCreate方法中实现以下内容。
其中我们在按钮上设置一个OnClickListener:

//Typecasting the Button
	btnDatePicker = (Button) findViewById(R.id.button1);
	//Setting an OnclickListener on the Button
	btnDatePicker.setOnClickListener(new OnClickListener() {
		@Override
		public void onClick(View v) {
//Creating an object of DatePickerDialog incontext of the Mainactivity
		//dateCallback is called which defined below
_date = new DatePickerDialog(MainActivity.this, dateCallback,     	           2012, 10, 12);
		//Showing the DatePickerDialog
			_date.show();
		   }
	    });
	//Setting OnDateSetListener on the DatePickerDialog
private DatePickerDialog.OnDateSetListener dateCallback = new OnDateSetListener() {
		@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
//Displaying a Toast with the date selected
Toast.makeText(MainActivity.this, "The date is : " + dayOfMonth+"/"+  ++monthOfYear +"/"+  year, Toast.LENGTH_LONG).show();
		}
	};