借图
事件监听机制中由事件源,事件,事件监听器三类对象组成 处理流程如下: Step 1:为某个事件源(组件)设置一个监听器,用于监听用户操作 Step 2:用户的操作,触发了事件源的监听器 Step 3:生成了对应的事件对象 Step 4:将这个事件源对象作为参数传给事件监听器 step 5:事件监听器对事件对象进行判断,执行对应的事件处理器(对应事件的处理方法)
五种不同的实现形式
1、直接用匿名内部类
直接setXxxListener后,重写里面的方法即可; 通常是临时使用一次,复用性不高
btnshow = (Button) findViewById(R.id.btnshow); btnshow.setOnClickListener(new View.OnClickListener(){ //重写点击事件的处理方法onClick() @Override public void onClick(View v){ //显示提示 Toast.makeText(getApplicationContext(),"你点击了按钮", Toast.LENGTH_SHORT).show(); } });2、使用内部类
btnshow.setOnClickListener(new BtnClickListener()); } class BtnClickListener implements View.OnClickListener { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "你点击了按钮", Toast.LENGTH_SHORT).show(); } }3、使用外部类
和外部类但是,但是不能外部类直接访问组件,所以需要通过构造函数传入组件。
4、直接使用Activity作为事件监听器
//让Activity方法实现OnClickListener接口 public class MainActivity extends Activity implements OnClickListener{ private Button btnshow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnshow = (Button) findViewById(R.id.btnshow); //直接写个this btnshow.setOnClickListener(this); } //重写接口中的抽象方法 @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "点击了按钮", Toast.LENGTH_SHORT).show(); } }直接让Activity继承OnClickListener,然后按钮直接监听this,并实现Activity的触发方法onClick。
5、直接绑定到标签
标签中加上这个,myclick是对应函数名
android:onClick="myclick"
@Override public void myClick(View v) { Toast.makeText(getApplicationContext(), "点击了按钮", Toast.LENGTH_SHORT).show(); }
版权声明:《 安卓开发之事件监听器 》为admin原创文章,转载请注明出处!
最后编辑:2022-9-16 09:09:48