Расширенная кнопка Android обнаруживает клик - PullRequest
0 голосов
/ 19 мая 2018

Я расширил класс Button и не реализовал onClick в расширенной кнопке.И я использую расширенную кнопку везде и устанавливаю onClick слушателя в каждом действии.

Как я могу обнаружить, что кнопка нажата в расширенном классе.

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 голосов
/ 19 мая 2018

Вы можете переопределить поведение 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(), это потребляет событие, и ваш слушатель не будет вызван.

...