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

时间:2011-03-23 02:35:01

标签: android performance android-layout

使用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

  

这个新功能减少了两者   您必须拥有的Java和XML数量   写信,留给你更多时间   专注于你的应用。

4 个答案:

答案 0 :(得分:34)

我认为加入android:onClick是一个非常糟糕的主意。

  1. 您正在使用逻辑
  2. 耦合演示文稿
  3. 除非您使用支持它的插件,否则如果您决定更改方法名称,则必须记住重构xml文件
  4. 只是不清楚xml中的按钮与活动中对click事件作出反应的方法之间的关系,除非您明确地在Java文件中定义它。使用android:onClick方法,您甚至可以忘记布局中有一个按钮,或者是处理其onClick事件的方法。
  5. 正如Corey Sunwold在评论中所指出的那样,我建议你坚持以编程方式定义OnClickListener并严格分离关注点。

答案 1 :(得分:0)

我正在考虑如何测试这个....但我相信两者之间没有性能差异,它们只是同一事物的不同接口。

答案 2 :(得分:0)

当我只需要点击android:onClick时,我就会使用Button

如果我需要对Button执行其他操作,例如启用/禁用它,我会使用setOnClickListener()作为mgv说。

另请注意android:onClick在Android 1.5中不起作用。

答案 3 :(得分:0)

您可以考虑使用onTouchListener。我发现它更快,特别是如果你想让动作发生在按下而不是释放。