1.基于监听的时间处理机制模型:
流程模型图:
文字表述:
事件监听机制中由事件源,事件,事件监听器三类对象组成
处理流程如下:
- Step 1:为某个事件源(组件)设置一个监听器,用于监听用户操作
- Step 2:用户的操作,触发了事件源的监听器
- Step 3:生成了对应的事件对象
- Step 4:将这个事件源对象作为参数传给事件监听器
- step 5:事件监听器对事件对象进行判断,执行对应的事件处理器(对应事件的处理方法)
归纳:
事件监听机制是一种委派式的事件处理机制,事件源(组件)事件处理委托给事件监听器 当事件源发生指定事件时,就通知指定事件监听器,执行相应的操作
2.五种不同的使用形式:
我们以下面这个: 简单的按钮点击,提示Toast信息的程序;使用五种不同的形式来实现!
效果图:
1)直接用匿名内部类
平时最常用的一种:直接setXxxListener后,重写里面的方法即可; 通常是临时使用一次,复用性不高!
实现代码如下:MainAcivity.java:
package com.jay.example.innerlisten; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import android.app.Activity; public class MainActivity extends Activity { private Button btnshow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
btnshow = (Button) findViewById(R.id.btnshow); btnshow.setOnClickListener(new OnClickListener() {
//重写点击事件的处理方法onClick() @Override public void onClick(View v) { //显示Toast信息 Toast.makeText(getApplicationContext(), "你点击了按钮", Toast.LENGTH_SHORT).show(); } }); } }
布局文件加入
<Button android:id="@+id/btnshow" android:layout_width="3dp" android:layout_height="48dp" android:layout_weight="1" android:text="密码可见" />