我扩展了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
类中,我想检测是否单击该按钮仅用于记录目的。我怎样才能做到这一点?
答案 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()
这会消耗该事件,并且不会调用您的侦听器。