Android扩展按钮检测onClick

时间:2018-05-19 11:11:31

标签: java android onclicklistener android-button

我扩展了Button类,并没有在扩展按钮中实现onClick。我每个地方都使用扩展按钮,并在每个活动中设置onClick监听器。

如何检测在Extended类中单击按钮。

public class ButtonExtended extends Button {
    public ButtonExtended(Context context) {
        super(context);
    }

    public ButtonExtended(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ButtonExtended(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public ButtonExtended(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }
    //onClick(){ here i want to detect the click }
}

在这个ButtonExtended类中,我想检测是否单击该按钮仅用于记录目的。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以覆盖performClick()行为以获取点击状态。

public class ButtonExtended extends AppCompatButton{
public ButtonExtended(Context context) {
    super(context);
}
public ButtonExtended(Context context, AttributeSet attrs) {
    super(context, attrs);
}
public ButtonExtended(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}
@Override
public boolean performClick() {
    Log.d("Button","performClick");
    return super.performClick();
}
}

performClick()将在侦听器之前首先被调用。不要在方法return super.performClick()中省略performClick()这会消耗该事件,并且不会调用您的侦听器。