如有错误欢迎指正
我们为按钮绑定点击事件的时候都是在java文件中的onClick()函数中写要执行的代码,但是如果有多个按钮,那只有一个onclick函数,它怎么知道是哪个按钮被点击了呢
其实我们可以为不同的按钮创建不同名字的点击函数,比如跳转按钮,在xml代码中加上一行android:onClick="transfer"
但是会报警告,点击提示suppress:add tools:ignore:onclick,强行消除警告。
末尾会自动加上一行tools:xxxx,不知道什么意思。
点击提示,编辑器会自动帮你在java代码中创建一个响应函数
在transfer函数中写代码跳转另一个activity
运行,结果按钮没反应。我不知道是不是跳转代码写的有问题,我就加了一行设置text的代码试一下按钮有没有监听到
再点击按钮发现还是没反应,我意识到,按钮没有监听到点击事件,为什么会这样。
我找到上文中的代码,将setonclicklistener注释掉
再次运行,按钮就有反应了。
想了一下原理,明白了。这里的参数“this”,指的是这个类,那这个按钮就绑定了这个类里面的onclick函数,所以我们点击的时候没反应。
按照之前设置的按钮的用法,我试了一下transfer按钮,发现和第一个按钮的功能一致,它就是执行了onclick函数。。。
其实我们还有另一种方法可以给多个按钮添加监听
在setonclicklistener的时候直接new一个函数,每个按钮都可以用onclick这个名字,但是其中的代码不一样。