1.4 通过内部类的方式设置响应
“1.2 通过匿名内部类的方式设置响应”中提到了通过创建匿名内部类实现响应的方法,其实也可以将创建一个相应的非匿名内部类来实现响应,如图5所示。
图5 非匿名内部类
从图5中可以看出,MyButton类实现了View.onClickListener接口(图5①),并且重写onClick()方法(图5②),在onClick()方法中,使用switch...case语句判断用户点击的哪个视图,进行后续处理(图5③)。
在MainActivity的onCreate()方法中,调用setOnClickListener()方法设置按键响应,如图6所示。
图6 设置按键响应
从图6中可以看出,setOnClickListener()方法的参数是MyButton类的对象。
2 通过视图属性进行设置
2.1 设置onClick属性
在XML布局文件中,设置视图的onClick属性,如图7所示。
图7 设置onClick属性
从图7中可以看到,按键视图的onClick属性值设置成了“click”,也就是说,当点击了该按键之后,会调用click()方法。
2.2 click()方法
接下来在MainActivity类的内部定义click()方法,如图8所示。
图8 click()方法
其中,click()方法的格式必须按照图8中的格式进行定义,返回值是void,参数是View的对象。此时,用户点击按键,程序就会调用click()方法进行响应。