Android 扩展按钮检测 onClick

Android Extended Button detect onClick

我已经扩展了按钮 class 但没有在扩展按钮中实现 onClick。我在每个地方都使用扩展按钮并在每个 activity.

中设置 onClick 侦听器

如何检测在扩展 class 中单击了按钮。

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 class 中,我想检测按钮是否只是为了记录而被单击。我怎样才能做到这一点?

您可以重写 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() 将在侦听器之前先被调用。不要在方法 performClick() 中省略 return super.performClick() 这会消耗事件,您的侦听器将不会被调用。