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.

465voto

moonlightcheese Points 4818

Il y a une meilleure façon.

View.performClick();

[http://developer.android.com/reference/android/view/View.html#performClick()](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.

Pour clarifier, View n'a pas de méthode statique performClick(). Vous devez appeler performClick() sur une instance de View. Par exemple, vous ne pouvez pas simplement appeler

View.performClick();

À la place, faites quelque chose comme :

View myView = findViewById(R.id.myview);
myView.performClick();

2 votes

Mais quelle est la vue pour le bouton de retour d'Android?

0 votes

Comment puis-je retrouver le bouton précédent?

4 votes

Il n'y a pas de "Vue" pour le bouton de retour sur votre téléphone. Vous devez utiliser des écouteurs de touches pour obtenir ces pressions de bouton. C'est un problème totalement différent.

54voto

Scott Tovey Points 205

Juste pour clarifier ce que moonlightcheese a déclaré: Pour déclencher un événement de clic de bouton via du code en Android fournir ce qui suit:

buttonName.performClick();

14voto

Tushar Saha Points 698

Vous pouvez le faire de cette façon

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

9voto

Deepak Sharma Points 980

Il suffit d'écrire cette ligne de code simple :-

button.performClick();

où button est la variable de référence de la classe Button et définie comme suit :-

private Button buttonAujourd'hui ;
buttonAujourd'hui = (Button) findViewById(R.id.buttonAujourd'hui);

C'est tout.

7voto

Colateral Points 1517

À partir de l'API15, vous pouvez également utiliser callOnClick() qui appelle directement l'OnClickListener de la vue attachée. Contrairement à performClick(), cela ne fait qu'appeler le listener, et n'effectue aucune action de clic associée comme signaler un événement d'accessibilité.

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