在XML文件中编写OnClick()在Java文件中使用OnClick函数编写侦听器之间有什么区别?



在Android中,您可以在按钮中写入onClick()函数并将函数链接到它。但是大多数情况下,我看到人们不这样做,而是将Java文件中的onClickListener激活到按钮。
为什么?两者之间有什么区别?如果您不允许使用其中一种?

是否有情况

简短说明:

onClick通过XML非常适合您的代码中的fixed实现,但是使用OnClickListener更适合具有多个UI元素或复杂UI流的复杂应用结构,但它们都做完全相同的事情。

详细:

当您通过布局设置onClick时,由setContentView启动的LayoutInflator将此属性传递给尊敬的视图构造函数&由视图代码管理。

但是,通过使用OnClickListener,您可以在复杂的应用结构中更改点击事件管理的控制的行为。

以下是onClick属性的内部实现的快照

case R.styleable.View_onClick:
                    if (context.isRestricted()) {
                        throw new IllegalStateException("The android:onClick attribute cannot "
                                + "be used within a restricted context");
                    }
                    final String handlerName = a.getString(attr);
                    if (handlerName != null) {
                        setOnClickListener(new DeclaredOnClickListener(this, handlerName));
                    }

内部实现本身使用setOnClickListener,因此两者都是相同的,正如我上面提到的,只有在应用程序很简单时,使用XML OnClick选项才是好的,否则使用侦听器。

在功能上,您都可以使用,他们都会做同样的事情。您使用哪一个没有限制,但是许多开发人员会使用Java代码倾向于使用Java代码,因为它更灵活,并且可以在需要的情况下添加更多功能。有时,您可能会看到人们在XML文件中添加一个非常基本的方法调用,然后链接到Java方法来完成所需的一切。

总的来说,这只是偏好和编码样式的问题。

最新更新