OnClick не срабатывает в пользовательском классе Button, но в родительском классе - PullRequest
1 голос
/ 21 апреля 2011

Я создал свою собственную кнопку

<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <ImageView
        ...></ImageView>

    <ImageView
        ...></ImageView>

    <TextView
        ...></TextView>
</merge>

она - класс для моей кнопки

public class StandardButton extends RelativeLayout implements OnClickListener{
    ...

private void init(Context context){
        this.setClickable(true);
        this.setEnabled(true);
        this.setFocusable(true);
        this.setFocusableInTouchMode(true);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.standard_button, this);

    }

    @Override
        public void onClick(View v) {
            setLabel("Click");
        }

, функция onClick не работает.Но это работает, если я помещаю Button в свою Activity и перезаписываю функцию onClick.

Есть ли решение для запуска функции при нажатии Button в моем классе StandardButton.Этот класс должен знать, щелкнул он или нет, а не активность!

Ответы [ 2 ]

7 голосов
/ 21 апреля 2011
this.setOnClickListener(this);

в методе init() должно помочь.

0 голосов
/ 12 мая 2016
this.setFocusableInTouchMode(true);

this.setFocusable(true);

эти обе строки происходят в вашем событии onclick, удалите его и

ПОСТАВИТЬ ЕГО

this.setFocusable(false);

будет работать onclick

...