按钮点击事件,说白了就一个方法,setOnClickListener(OnClickListener)。

    只要传递的参数只要是OnClickListener接口的子类即可,很容易想到的2种实现方式就是匿名内部类定义一个类实现这个接口。另外还有2种实现方法,有必要着重讲一下:

    1.让Activity自身实现OnClickListener接口,传递setOnClickListener参数用this。

         然后在onClick(View v)方法中,判断事件源id.

         switch(v.getId())

         {

            case R.id.XXX000

                 响应代码  

                 break;

            

            case R.id.XXX111

                 响应代码  

                 break;

         }

         这个和定义一个类实现接口的方法一个道理,只是免得我们再去多定义一个类而已。直接让Activity自身实现OnClickListener接口,实现它里面的OnClick方法。

         这种定义方式适用于有多个点击事件的情况。使用这种方式注意导包很容易导错的。

        

    2.在布局文件中定义一个标签属性android:onclick="方法名",然后在Android项目调用这个布局的.java文件中定义一个方法,public 方法名(View v),记住要public且有View参数。

     Android Day01-Android按钮点击事件的4种写法_Android课程

     通过查看Button的父类View的源码,可以发现,OnClick底层使用的是反射原理,但是没有使用暴力反射,所以定义方法时要用public。  

     这种定义事件的方法一般只在测试的时候使用,也可以给多个按钮添加同一个方法名称,通过

v.getId()再去判断一下ID就好了。