Java 为什么要实现onClickListener,而不仅仅是将onClick属性设置为活动类中定义的方法?

Java 为什么要实现onClickListener,而不仅仅是将onClick属性设置为活动类中定义的方法?,java,android,xml,onclick,event-handling,Java,Android,Xml,Onclick,Event Handling,我知道专业人士使用前者来定制onClick方法以符合他们的确切规范,但我不能只使用onClick属性并在方法中指定相同的所需操作。 i、 e.[在xml文件中:][code>onClick=“doSomething”&然后 [在MainActivity.java中:] public void doSomething(View view){ //define and start intent //Show a toast, etc } 为什么不直接使用后者呢?谢谢 为什

我知道专业人士使用前者来定制onClick方法以符合他们的确切规范,但我不能只使用onClick属性并在方法中指定相同的所需操作。 i、 e.[在xml文件中:][code>onClick=“doSomething”&然后 [在MainActivity.java中:]

public void doSomething(View view){
     //define and start intent 
     //Show a toast, etc 
 }
为什么不直接使用后者呢?谢谢

为什么不直接使用后者呢

请说吧

在较大的项目中,活动不太可能直接管理按钮:

  • 您可能正在使用片段,在这种情况下,片段更有可能管理按钮,而不是活动

  • 您可能正在使用MVP、MVVM、MVI等GUI架构,在这种情况下,其他一些“presenter”对象更有可能管理按钮而不是活动

  • 您可能正在使用数据绑定框架,在这种情况下,您可能仍然在布局资源中使用
    android:onClick
    ,但将事件指向活动以外的其他内容(例如片段、演示者)

  • 等等


是的,您可以这样做,两者都在做相同的事情,但使用onClickListener是一个更好的选择,您可以在希望该按钮处于活动状态时设置侦听器,从而使您的按钮和活动协调一致。 如果您在xml文件中使用onClick,它将始终调用该方法,而不管您的活动中发生了什么