在 xml 中使用 onClick 和在 activity 中使用 button.setOnClickListener 有什么区别?
What are the differences in using onClick in the xml and button.setOnClickListener in the activity?
据我所知,在 android 中有两种实现按钮点击的方法。一种是定义 android:onClick="someFunction"
,另一种是在 activity 中设置监听器。我想知道的是:
- 它们是否相同,是否可以互换使用。
- 有什么我可以用一个而不是另一个做的事情吗?有什么限制吗?
- 仅凭意见哪个更好?
android:onclick可以直接在view的activity中处理点击,不需要实现任何接口
android:onClick 适用于 API 4 级以上,所以如果你的目标是 < 1.6,那么你不能使用它。
OnClickListener 使您能够将单击事件的操作与触发该事件的视图分开。
你可以参考这个帖子了解更多详情Android onClick in XML vs. OnClickListener
希望对您有所帮助
One is by defining android:onClick="someFunction" and another is by having a listener in the activity.
不完全是。您的选择是:
使用 android:onClick
,指向 activity 中托管此小部件的方法,使用此方法的本机实现(自 Android 1.6)
在 View
上调用 setOnClickListener()
,传入 OnClickListener
的实现
使用数据绑定框架tie android:onClick
to an arbitrary method or an arbitrary lambda expression
Are they the same and if I can use them interchangeably.
它们是相同的,因为两者都定义了用户单击小部件时要调用的行为。
Are there things I can do with one and not the other? Any limitations?
选项 #1 仅限于在主机 activity 上实施的方法。选项 #2 和选项 #3 不是。有了这些,您可以实现在点击事件上调用的逻辑,作为某些 UI 控制器或演示者的一部分,例如片段。
Is it just up to opinion which is better practice?
好吧,几乎一切都取决于意见。
恕我直言,选项 #1 适用于简单的应用程序,例如书籍示例。选项 #3 是新的但功能强大,我预计这将是长期解决方案。
据我所知,在 android 中有两种实现按钮点击的方法。一种是定义 android:onClick="someFunction"
,另一种是在 activity 中设置监听器。我想知道的是:
- 它们是否相同,是否可以互换使用。
- 有什么我可以用一个而不是另一个做的事情吗?有什么限制吗?
- 仅凭意见哪个更好?
android:onclick可以直接在view的activity中处理点击,不需要实现任何接口
android:onClick 适用于 API 4 级以上,所以如果你的目标是 < 1.6,那么你不能使用它。
OnClickListener 使您能够将单击事件的操作与触发该事件的视图分开。
你可以参考这个帖子了解更多详情Android onClick in XML vs. OnClickListener
希望对您有所帮助
One is by defining android:onClick="someFunction" and another is by having a listener in the activity.
不完全是。您的选择是:
使用
android:onClick
,指向 activity 中托管此小部件的方法,使用此方法的本机实现(自 Android 1.6)在
View
上调用setOnClickListener()
,传入OnClickListener
的实现
使用数据绑定框架tie
android:onClick
to an arbitrary method or an arbitrary lambda expression
Are they the same and if I can use them interchangeably.
它们是相同的,因为两者都定义了用户单击小部件时要调用的行为。
Are there things I can do with one and not the other? Any limitations?
选项 #1 仅限于在主机 activity 上实施的方法。选项 #2 和选项 #3 不是。有了这些,您可以实现在点击事件上调用的逻辑,作为某些 UI 控制器或演示者的一部分,例如片段。
Is it just up to opinion which is better practice?
好吧,几乎一切都取决于意见。
恕我直言,选项 #1 适用于简单的应用程序,例如书籍示例。选项 #3 是新的但功能强大,我预计这将是长期解决方案。