Как имитировать нажатие кнопки с помощью кода?

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

Те же проблемы, с которыми я сталкиваюсь

public void onDateSelectedButtonClick(View v){
    /*Something  Alarm Management 
    http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
    copied code from this site*/
}

Код кнопки:

<Button
    android:onClick="onDateSelectedButtonClick"
    android:text="Set notification for this date" />

Но я хочу вызвать эту функцию OnLoadLayout без OnClickEvent

Ответ 2

Просто чтобы уточнить, что сказал лунный свет: Чтобы вызвать событие нажатия кнопки с помощью кода в Android укажите следующее:

buttonName.performClick();

Ответ 3

вы можете сделать это таким образом

private Button btn;
btn = (Button)findViewById(R.id.button2);
btn.performClick();

Ответ 4

Android callOnClick() (добавлен в API 15) иногда может быть лучшим выбором в моем опыте, чем performClick(). Если у пользователя есть звуки выбора, то performClick() может привести к тому, что пользователь услышит два звуковых сигнала непрерывного выбора, которые несколько накладываются друг на друга, что может быть резким. (Один звук выбора для первого нажатия кнопки пользователя, а затем другой для другой кнопки OnClickListener, которую вы вызываете через код.)

Ответ 5

Просто напишите эту простую строку кода: -

button.performClick();

где кнопка является ссылочной переменной класса Button и определяется следующим образом: -

private Button buttonToday ;
buttonToday = (Button) findViewById(R.id.buttonToday);

Что это.

Ответ 6

Если вы не используете аргумент sender, почему бы не реорганизовать реализацию обработчика кнопок для разделения функции и вызвать ее из любой точки (из обработчика кнопки и из другого места).

Во всяком случае, это лучший и более чистый дизайн - код, который нужно вызвать в обработчике кнопок. И из некоторых других мест заслуживает реорганизации для собственной функции. Кроме того, это поможет вам разделить обработку пользовательского интерфейса с кодом логики приложения. У вас также будет хорошее имя для функции, а не только onDateSelectedButtonClick().

Ответ 7

Начиная с API15, вы также можете использовать callOnClick(), которые непосредственно вызывают прикрепленный вид OnClickListener. В отличие от performClick(), это вызывает только прослушиватель и не выполняет никаких связанных действий щелчка, таких как сообщение о событии доступности.