Как я могу вызвать событие нажатия кнопки, используя код в 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
Ответы:
Существует лучший способ.
http://developer.android.com/reference/android/view/View.html#performClick ()
это должно ответить на все ваши проблемы. каждый вид наследует эту функцию, включая кнопку, спиннер и т. д.
Для пояснения, у View нет статического метода executeClick (). Вы должны вызвать executeClick () для экземпляра View. Например, вы не можете просто позвонить
Вместо этого сделайте что-то вроде:
источник
Просто чтобы уточнить, что сказал Moonlightcheese: Чтобы вызвать событие нажатия кнопки через код в Android, предоставьте следующее:
источник
ты можешь сделать это так
источник
Android
callOnClick()
( добавлено в API 15 ) иногда может быть лучшим выбором, чемperformClick()
. Если у пользователя включены звуки выбора, то онperformClick()
может слышать два непрерывных звука выбора, которые несколько наслоены друг на друга, что может вызывать дрожь. (Один звук выбора для первого нажатия кнопки пользователем, а затем другой для другой кнопки,OnClickListener
которую вы вызываете с помощью кода.)источник
Просто напишите эту простую строку кода:
где кнопка является ссылочной переменной класса Button и определяется следующим образом:
Вот и все.
источник
Начиная с API15, вы также можете использовать
callOnClick()
тот, который напрямую вызывает вложенное представление OnClickListener. В отличие от executeClick (), он вызывает только прослушиватель и не выполняет никаких связанных действий щелчка, таких как сообщение о событии доступности.источник
Если вы не используете
sender
аргумент, почему бы не изменить рефакторинг реализации обработчика кнопки, чтобы отделить функцию, и вызывать ее из любого места (из обработчика кнопки и из другого места).В любом случае, это лучший и более чистый дизайн - код, который нужно вызывать в обработчике кнопок И из некоторых других мест, заслуживает рефакторинга под собственную функцию. Кроме того, это поможет вам отделить обработку пользовательского интерфейса от логического кода приложения. У вас также будет красивое имя функции, а не только onDateSelectedButtonClick ().
источник