227 votes

Comment simuler un clic sur un bouton en utilisant du code?

Comment puis-je déclencher un événement de clic sur un bouton en utilisant du code dans Android? Je veux déclencher le clic sur le bouton de manière programmatique lorsqu'un autre événement se produit.

Même problème auquel je suis confronté

public void onDateSelectedButtonClick(View v){
    /*Quelque chose de gestion d'alarme
    http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
    code copié à partir de ce site*/
}

Code du bouton:

Mais je veux appeler cette fonction OnLoadLayout sans événement OnClick

0 votes

Pouvez-vous s'il vous plaît spécifier le problème ? Pourquoi voulez-vous cela ? Voulez-vous déclencher l'exécution de certains codes ?

0 votes

Oui, je veux déclencher le code à exécuter lors du clic sur le bouton.

7voto

ScootrNova Points 1259

La méthode callOnClick() d'Android (ajoutée dans l'API 15) peut parfois être un meilleur choix selon mon expérience que performClick(). Si un utilisateur a activé les sons de sélection, alors performClick() pourrait provoquer l'audition de deux sons de sélection continus qui se superposent quelque peu, ce qui peut être déconcertant. (Un son de sélection pour le premier clic sur le bouton de l'utilisateur, puis un autre pour le OnClickListener de l'autre bouton que vous appelez via le code.)

4voto

d.popov Points 1011

Si vous n'utilisez pas l'argument sender, pourquoi ne pas refactoriser l'implémentation du gestionnaire de boutons en une fonction séparée, et l'appeler de n'importe où vous voulez (du gestionnaire de boutons et d'ailleurs).

Quoi qu'il en soit, c'est une conception meilleure et plus propre - un code qui doit être appelé dans le gestionnaire de boutons ET à partir d'autres endroits mérite d'être refactorisé en sa propre fonction. De plus, cela vous aidera à séparer la gestion de l'interface utilisateur du code logique de l'application. Vous aurez également un joli nom pour la fonction, pas seulement onDateSelectedButtonClick().

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X