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

Как я могу вызвать событие нажатия кнопки с помощью кода на 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

Solutions Collecting From Web of "Как имитировать нажатие кнопки с помощью кода?"

Существует лучший способ.

 View.performClick(); 

http://developer.android.com/reference/android/view/View.html#performClick ()

Это должно ответить на все ваши проблемы. Каждый вид наследует эту функцию, включая Button, Spinner и т. Д.

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

 buttonName.performClick(); 

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

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

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

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

 button.performClick(); 

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

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

Вот и все.

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

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

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