android的任何缺点:onClick属性的使用?

android的任何缺点:onClick属性的使用?,android,Android,以下哪种方式更适合onClick的方法实现: -在xml中使用android:onClick属性 -实现和定义onClickListener?在我个人看来,定义实现和定义onClickListener要好得多。主要原因是其他人更容易理解代码的工作原理 当您阅读Android应用程序的代码时,您将阅读.java文件(90%的时间)以了解其工作原理;您将忽略大多数XML布局,这些布局不会告诉您应用程序的实际工作方式或用途 因此,如果您使用android:onClick属性,您将迫使其他人(和您自己)

以下哪种方式更适合onClick的方法实现: -在xml中使用android:onClick属性
-实现和定义onClickListener?

在我个人看来,定义实现和定义
onClickListener
要好得多。主要原因是其他人更容易理解代码的工作原理

当您阅读Android应用程序的代码时,您将阅读.java文件(90%的时间)以了解其工作原理;您将忽略大多数XML布局,这些布局不会告诉您应用程序的实际工作方式或用途

因此,如果您使用
android:onClick
属性,您将迫使其他人(和您自己)从两个方面看:XML布局和Java源代码,以了解应用程序的流程和意图,这是不好的


注意,这是一个可读性的问题;从技术上讲,性能应该没有任何差异。

下面的链接使用android更好地解释了这一点:onClick比onClickListener更好。,其他人很难理解它,但它很好,但有几个优点。

我更喜欢使用android:onClick,因为它使java代码看起来更干净,而不是使用一堆switch语句和findviewbyd调用。但是,如果忘记实现android:onClick的功能,则在触摸视图时会导致强制关闭

如果您在XML中使用onClick,那么对您的设计师和UI人员来说就更容易了;如果您将它放在代码中,那么对知道它是XML格式的程序员来说就“更容易了”。

如果您的Minsdk版本是4(1.6)或更高版本,请使用android:onClick。它将使您的代码更干净,易于阅读。如果minSdkVersion小于4(例如,3是1.5),不要使用onClick属性,因为它将被忽略


onClick属性使用反射创建在视图上设置的OnClickListener,并使用反射调用方法。对于绝大多数应用程序来说,这很好,而且永远不会成为问题,但对于处理器密集型应用程序来说,这值得考虑。

onclick事件(HTML/ASP)的这种解释是否适用于android世界


使用XML onClick属性要整洁得多。然而,正如已经指出的,它缺乏显示onClick声明位置的可见性。我创建了一个注释,它提高了XML声明onclicks的可见性,因此当浏览代码时,您可以更好地了解正在发生的事情

在这里查看:

例如:

 @FromXML
 public void onSomeXmlButtonClick(View button){

 }

我认为命名约定可以克服这一点。如果我看到一个名为
buttonFrozz\u onClick(View)
的方法,并且在某个地方也有一个
buttonFrozz
,那么连接这两个方法就没有问题了。更多的陈述,更少的命令。是的。。。这是一个很好的观点。但是,例如,如果你来自C#,这很有用;然而,在Java领域,更具体地说,在Android领域,您将看不到这些约定(我指的是Android内核的编写方式)。
Android:onClick
除了代码更少之外,还有一个主要优势——它是版面资源的一部分。根据设备的当前配置,在运行时选择资源。用户界面的某些部分可能使用相同布局的不同变体,具体取决于设备是否处于横向/纵向模式,屏幕大小是否不同,等等。在这种情况下,您可以在每个元素上使用
onClick
属性来适当地连接,而不是使用大量代码来确定运行时存在哪些元素。@adamp+1。使用android:onClick