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()
这会消耗事件,您的侦听器将不会被调用。
我已经扩展了按钮 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()
这会消耗事件,您的侦听器将不会被调用。