Comment puis-je déclencher un événement de clic de bouton à l'aide de code dans Android? Je veux déclencher le clic du bouton par programme lorsqu'un autre événement se produit.
Même problème auquel je fais face
public void onDateSelectedButtonClick(View v){
/*Something Alarm Management
http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
copied code from this site*/
}
Code du bouton:
<Button
android:onClick="onDateSelectedButtonClick"
android:text="Set notification for this date" />
Mais je veux appeler cette fonction OnLoadLayout sans OnClickEvent
Réponses:
Il y a un meilleur moyen.
http://developer.android.com/reference/android/view/View.html#performClick ()
cela devrait répondre à tous vos problèmes. chaque vue hérite de cette fonction, y compris Button, Spinner, etc.
Juste pour clarifier, View n'a pas de méthode performClick () statique. Vous devez appeler performClick () sur une instance de View. Par exemple, vous ne pouvez pas simplement appeler
Au lieu de cela, faites quelque chose comme:
la source
Juste pour clarifier ce que Moonlightcheese a déclaré: Pour déclencher un événement de clic de bouton via le code dans Android, fournissez les éléments suivants:
la source
vous pouvez le faire de cette façon
la source
Android
callOnClick()
( ajouté dans l'API 15 ) peut parfois être un meilleur choix que dans mon expérienceperformClick()
. Si un utilisateur a activé les sons de sélection, celaperformClick()
pourrait amener l'utilisateur à entendre deux sons de sélection continue qui sont quelque peu superposés et qui peuvent être discordants. (Un son de sélection pour le premier clic du bouton de l'utilisateur, puis un autre pour les autres boutonsOnClickListener
que vous appelez via le code.)la source
Écrivez simplement cette simple ligne de code: -
où bouton est la variable de référence de la classe Button et défini comme suit: -
C'est tout.
la source
À partir d'API15, vous pouvez également utiliser
callOnClick()
cette fonction pour appeler directement la vue jointe OnClickListener. Contrairement à performClick (), cela appelle uniquement l'écouteur et n'effectue aucune action de clic associée, comme signaler un événement d'accessibilité.la source
Si vous n'utilisez pas l'
sender
argument, pourquoi ne pas refactoriser l'implémentation du gestionnaire de boutons pour séparer la fonction, et l'appeler de l'endroit où vous le souhaitez (à partir du gestionnaire de boutons et de l'autre endroit).Quoi qu'il en soit, c'est une conception meilleure et plus propre - un code qui doit être appelé sur le gestionnaire de boutons ET de certains autres endroits mérite d'être refactorisé pour fonctionner. De plus, il vous aidera à séparer la gestion de l'interface utilisateur du code logique d'application. Vous aurez également un joli nom pour la fonction, pas seulement onDateSelectedButtonClick ().
la source