按钮setOnClickListener()vs android:onclick

Mar*_*ema 7 android button

注册OnClickListener我总是打电话setOnClickListener(listener)Button.现在我已经看到了一段代码,其中在布局中定义了click事件,方法是使用android:onclick="nameOfMethod"并使用View参数实现该方法.

这两种添加方式有什么不同OnClickListener吗?推荐哪一个?

小智 10

onClickXML中绑定的with函数是onClick它调用的函数和它之间的绑定.该函数只有一个参数才能onClick运行.

An OnClickListener是任何类都可以实现的接口.由于它是任何类都可以实现的接口,因此更灵活.

如果需要,您可以轻松地将一个侦听器实现与另一个实现交换.

一个OnClickListener使您可以单击事件的动作/行为从触发事件视图分离.虽然对于简单的情况,这对于复杂的事件处理来说并不是什么大问题,但这可能意味着更好的可读性和代码的可维护性

换一种说法 -

XML onClick适用于Java代码中的一个固定实现. OnClickListener对于更复杂的代码和多个按钮更好.但至于基本功能 - 它们都完全相同.