在Android中; 是更好的应用OnClickListener或使用android:onClick?

使用onClick性能会更好吗? 如果我使用onClick,我不必设置一个android:id (也避免了一个新的View.OnClickListener ),这是否提高性能呢? 或者是在后台发现findViewById的效果相同?

这个页面提供了两种方法作为选项,但没有任何好处的指导。

http://developer.android.com/reference/android/widget/Button.html

这里有一篇博客文章,他们认为onClick对1.6后期应用程序来说是“更容易”和“改进”的;

http://android-developers.blogspot.com/2009/10/ui-framework-changes-in-android-16.html

这个新function可以减less您需要编写的Java和XML的数量,让您有更多时间专注于您的应用程序。

Solutions Collecting From Web of "在Android中; 是更好的应用OnClickListener或使用android:onClick?"

我相信包含android:onClick是一个非常糟糕的主意。

  1. 您将演示文稿与逻辑耦合
  2. 除非你使用支持它的插件,否则如果你决定改变你的方法名称,你必须记得重构xml文件
  3. 只是不清楚xml中的button与活动中的方法之间的关系,这些方法会对click事件做出反应,除非您明确地在Java文件中看到它。 使用android:onClick方法,你甚至可以忘记你的布局中有一个button,或者是处理onClick事件的方法。

我build议你坚持以编程方式定义你的OnClickListener并保持严格的关注点,正如Corey Sunwold在他的评论中指出的那样。

您可以考虑使用onTouchListener。 我发现它会更快,特别是如果你想在新闻发生的行动,而不是释放。

我想要考虑如何testing….但我相信这两者之间没有性能差异,它们只是用于同一事物的不同接口。

我使用android:onClick当我只需要我的Button可点击。

如果我需要做一些其他的Button ,例如启用/禁用它,我会使用setOnClickListener()作为mgv说。

另外请记住, android:onClick在Android 1.5中不起作用。