Могу ли я сослаться на кнопку OnClickListener из слушателя?(Андроид) - PullRequest
3 голосов
/ 07 июля 2011

У меня есть программа для Android, где у меня есть несколько кнопок, использующих один и тот же OnClickListener, и я хочу иметь возможность ссылаться на динамически назначенный текст кнопки изнутри слушателя. Есть ли какой-нибудь способ ссылки на кнопку, которая была нажата, чтобы получить ее текст? Я не хочу, чтобы несколько слушателей для кнопок делали одно и то же.

Ответы [ 4 ]

13 голосов
/ 07 июля 2011

В вашем onClick (View v) вы можете привести его к кнопке:

@Override
public void onClick(View v) {
  Button clickedButton = (Button)v;
  // do stuff with it here.
}
1 голос
/ 07 июля 2011

используйте View, который является аргументом для onClick(View v)

, который можно привести к кнопке и работать с ним.

0 голосов
/ 07 июля 2011

Да, должен быть способ.

public abstract void onClick (View v)

Вы заметите, что просмотр, по которому щелкнули, передается в метод onClick (). Так что если у вас есть ссылка на View (Button), доступную (например, как переменная экземпляра в Activity), то вы можете сделать это:

public abstract void onClick (View v) {
    if (v == firstButton) {
        //Do some stuff
    }
    else if (v == secondButton) {
        //Do some other stuff
    }
}
0 голосов
/ 07 июля 2011

Аргументом onClick является View, который инициировал щелчок, который будет кнопкой, к которой вы прикрепили слушателя. Примените его к кнопке, чтобы получить объект кнопки.

...