为了注册一个 OnClickListener
,我总是在 Button
上调用 setOnClickListener(listener)
。现在我看到了一段代码,其中通过使用 android:onclick="nameOfMethod"
并使用 View
参数实现该方法,在布局中定义了点击事件。
这两种添加OnClickListener
的方式有区别吗?推荐哪一个?
最佳答案
在 XML 中绑定(bind)函数的 onClick
是 onClick
和它调用的函数之间的绑定(bind)。为了使 onClick
起作用,该函数将只有一个参数。
OnClickListener
是任何类都可以实现的接口(interface)。由于它是任何类都可以实现的接口(interface),因此更加灵活。
如果需要,您可以轻松地将一个监听器实现替换为另一个。
OnClickListener
使您能够将点击事件的 Action /行为与触发该事件的 View 分开。虽然对于简单的情况这不是什么大问题,但对于复杂的事件处理,这可能意味着代码的可读性和可维护性更好
换句话说——
XML onClick
适用于 Java 代码中的一种固定实现。
OnClickListener
更适合更复杂的代码和多个按钮。但至于基本功能 - 它们都做完全相同的事情。
关于android - 按钮 setOnClickListener() 与 android :onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22172448/