一般来说:为什么使用点击处理程序而不是子类?

时间:2014-02-01 13:47:40

标签: 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
}

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

我确信这个设计有充分的理由,我无法想到它们!

1 个答案:

答案 0 :(得分:1)

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

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

或者您可以在您的活动或片段中实施View.OnClickListener,并将onClickListener设置为this