java - 一般为: why use click-handlers instead of subclassing?

标签 java android events click handler

我的问题纯粹是一般性的。为什么 Java 强制您编写复杂的处理程序,这些处理程序需要附加到对象上以实现像单击这样的简单操作?

那么,为什么我需要写:

public class ClickMe implements OnClickListener {

    void someMethod() {
        Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        ....
    }
}

而不是类似的东西

class myButton extends Button {
@override void onClick() {
// do something special
}

然后在我的布局上使用该按钮?

我确信这种设计是有充分理由的,只是我想不出它们!

最佳答案

我对你的意思有点困惑,但是将 onClickListeners 附加到按钮相当容易。

myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           //Do stuff when clicked 
        }
    });

或者您可以在 Activity 或 Fragment 中实现 View.OnClickListener,并将 onClickListener 设置为 this

关于java - 一般为: why use click-handlers instead of subclassing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21498822/

相关文章:

java - 如果 Java JVM 只使用其中的一个类,它是否会加载整个 jar 或 ear?

java - 通过 Firebase 单击通知获取 Intent Extra

java - android 在运行时替换方法调用

Java 8 测试列表排序 Comparator 和 thenComparing

java - 如何在 Java 上列出倒三角形上的数字

java - 带有 JDK7 的 JAXB 问题 - com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException : 1 counts of IllegalAnnotationExceptions

android - 无法在 Android 源文件中触发断点

java - 当鼠标进入组件控件时,如何阻止 SWT 复合控件触发 MouseExit 事件?

c# - 统一管理时间事件的正确方法

javascript - 如何使用javascript从父窗口获取子窗口url