【发布时间】:2015-05-20 18:49:49
【问题描述】:
我在这里浏览了一个项目,它有一种使用 onClick 的方式,这与我在其他任何时候看到的不同。
通常您在 onCreate 或其他期间为按钮设置侦听器。
在活动 xml 中,它有 android:onClick="navigateToUrl"。然后这似乎启动了类代码中的方法 navigateToUrl。
我只是想知道这两种方法有什么区别?
【问题讨论】:
标签: android
我在这里浏览了一个项目,它有一种使用 onClick 的方式,这与我在其他任何时候看到的不同。
通常您在 onCreate 或其他期间为按钮设置侦听器。
在活动 xml 中,它有 android:onClick="navigateToUrl"。然后这似乎启动了类代码中的方法 navigateToUrl。
我只是想知道这两种方法有什么区别?
【问题讨论】:
标签: android
它们的工作方式相同。在 xml 版本中,框架在膨胀期间添加了一个 onClickListener,它使用 Context 上的反射,通过查找具有该名称的函数来调用它并调用它。所以它的效率略低,但还不足以让人真正担心。最大的优点是 onCreate 不太混乱,最大的缺点是要弄清楚单击时视图的作用,您必须阅读 xml 而不是代码。您使用哪个是个人喜好问题。我目前在显式 onClickListener 组中,因为我不想拥有幕后魔术。
【讨论】:
对于后者,您需要始终保留public 方法。如果您不想让您的方法公开可见,您希望实现一个侦听器。
【讨论】: