¿Cómo puedo activar un evento de clic de botón usando el código en Android? Quiero activar el clic del botón mediante programación cuando se produce algún otro evento.
Mismo problema al que me enfrento
public void onDateSelectedButtonClick(View v){
/*Something Alarm Management
http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
copied code from this site*/
}
Código del botón:
<Button
android:onClick="onDateSelectedButtonClick"
android:text="Set notification for this date" />
Pero quiero llamar a esa función OnLoadLayout sin OnClickEvent
Respuestas:
Hay una mejor manera.
http://developer.android.com/reference/android/view/View.html#performClick ()
Esto debería responder a todos tus problemas. Cada Vista hereda esta función, incluyendo Botón, Spinner, etc.
Solo para aclarar, View no tiene un método estático performClick (). Debe llamar a performClick () en una instancia de View. Por ejemplo, no puedes simplemente llamar
En cambio, haga algo como:
fuente
Solo para aclarar lo que dijo moonlightcheese: para activar un evento de clic de botón a través del código en Android, proporcione lo siguiente:
fuente
puedes hacerlo de esta manera
fuente
Android
callOnClick()
( agregado en API 15 ) a veces puede ser una mejor opción en mi experiencia queperformClick()
. Si un usuario tiene habilitados los sonidos de selección,performClick()
podría hacer que el usuario escuche dos sonidos de selección continua que están en capas uno encima del otro, lo que puede ser discordante. (Un sonido de selección para el primer clic del usuario en el botón y luego otro para el otro botón alOnClickListener
que está llamando mediante código).fuente
Simplemente escriba esta simple línea de código: -
donde button es la variable de referencia de la clase Button y se define de la siguiente manera:
Eso es.
fuente
A partir de API15, puede usar también
callOnClick()
esa llamada directamente a la vista adjunta OnClickListener. A diferencia de performClick (), esto solo llama al oyente y no realiza ninguna acción de clic asociada, como informar un evento de accesibilidad.fuente
Si no utiliza el
sender
argumento, ¿por qué no refactorizar la implementación del controlador de botones para separar la función y llamarla desde donde desee (desde el controlador de botones y desde el otro lugar).De todos modos, es un diseño mejor y más limpio: un código que debe invocarse en el controlador de botones Y desde otros lugares merece ser refactorizado para tener su propia función. Además, lo ayudará a separar el manejo de la interfaz de usuario del código lógico de la aplicación. También tendrá un buen nombre para la función, no solo onDateSelectedButtonClick ().
fuente