在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方法来完成所需的一切。
总的来说,这只是偏好和编码样式的问题。