java

借图事件监听机制中由事件源,事件,事件监听器三类对象组成处理流程如下:Step1:为某个事件源(组件)设置一个监听器,用于监听用户操作Step2:用户的操作,触发了事件源的监听器Step3:生成了对应的事件对象Step4:将这个事件源对象作为参数传给事件监听器step5:事件监听器对事件对象进行判断,执行对应的事件处理器(对应事件的处理方法)五种不同的实现形式1、直接用匿名内部类直接setXxxListener后,重写里面的方法即可;通常是临时使用一次,复用性不高btnshow=(Button)findViewById(R.id.btnshow);btnshow.setOnClickListener(newView.OnClickListener(){//重写点击事件的处理方法onClick()@OverridepublicvoidonClick(Viewv){//显示提示Toast.makeText(getApplicationContext(),"你点击了按钮",Toast.LENGTH_SHORT).show();}});2、使用内部类btnshow.setOnClickListener(newBtnClickListener());}classBtnClickListenerimplementsView.OnClickListener{@OverridepublicvoidonClick(Viewv){Toast.makeText(getApplicationContext(),"你点击了按钮",Toast.LENGTH_SHORT).show();}}3、使用外部类和外部类但是,但是不能外部类直接访问组件,所以需要通过构造函数传入组件。4、直接使用Activity作为事件监听器//让Activity方法实现OnClickListener接口publicclassMainActivityextendsActivityimplementsOnClickListener{privateButtonbtnshow;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnshow=(Button)findViewById(R.id.btnshow);//直接写个thisbtnshow.setOnClickListener(this);}//重写接口中的抽象方法@OverridepublicvoidonClick(Viewv){Toast.makeText(getApplicationContext(),"点击了按钮",Toast.LENGTH_SHORT).show();}}直接让Activity继承OnClickListener,然后按钮直接监听this,并实现Activity的触发方法onClick。5、直接绑定到标签标签中加上这个,myclick是对应函数名android:onClick="myclick"@OverridepublicvoidmyClick(Viewv){Toast.makeText(getApplicationContext(),"点击了按钮",Toast.LENGTH_SHORT).show();}