Android 一个 OnClick 方法可用于多个按钮?
我在android上开始了一些程序, 我在一个 Activity 中有 3 个按钮。
我看到一些示例代码将相同的 OnClick 事件分配给所有按钮(即使它们执行完全不同的操作),并且在方法 Switch(id) case case 中。 ..
更好的方法是什么?一个 onClick
方法和切换还是很多方法,每个按钮一个?
谢谢。
I started program little bit in android,
I have 3 buttons in a single activity.
I saw some example codes that assign the same OnClick
event to all the buttons (even if they perform completely different action) and in the method Switch(id)
case case case...
What is the better approach? one onClick
method and switching or a lot of methods, one for each button?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用这种方式:
Use this way:
如果你想减少代码行,那么使用
View 的 OnClick() 和 switch 语句
,如果你想单独处理所有点击(以便于理解和维护代码),那么使用单独的所有button 的 onClick ().
更新:
如果您在 Activity 布局 xml 文件中声明了按钮,请为所有按钮编写具有相同方法名称的属性
android:onClick=""
按钮并在您的活动中实现该方法。现在您拥有一种适用于所有按钮的方法,并在该方法中通过 id 区分按钮。示例:
现在在您的 Activity 中实现
buttonOnClick
,或者您可以为 Activity 中动态添加的按钮应用相同的 switch case,
就像代替
buttonOnClick
一样,您必须使用实现的 View 的 OnClickListerneronClick
。If you want to reduce the coding lines then use
View's OnClick() with switch statement
and if you want to handle separately all click (for easily understanding and maintaining code) then use separate allbutton's onClick().
Update:
If you have declared Buttons in your Activity layout xml file, than write attribute
android:onClick=""
with same method name for all buttons and implement that method in your activity. Now you have one method for all buttons and in that method differentiate buttons with id.Example:
Now in your Activity implement
buttonOnClick
like,Or you can apply same switch case for dynamically added buttons in your activity,
like instead of
buttonOnClick
you have to use implemented View's OnClickListerner'sonClick
.这是好方法。
Here is the good way.
我认为在 xml(布局)中注册
onClick
是更好的方法。编辑:
找到相关线程:
I think registering
onClick
in xml (layout) is better approach.EDIT:
Found related threads :
.class 中的方法
Method in .class
对@Nguyen 答案的补充很少。
如果您不想初始化按钮变量,但想要跟踪按钮单击事件,这可能很有用。谢谢!
Little addition to @Nguyen answer.
This could be useful, if you don't want to initialize the button variable, but want to track button click event. Thanks!