Comment déclencher un événement de clic de bouton à l'aide de code sous Android? Je souhaite déclencher le clic du bouton par programmation lorsqu'un autre événement se produit.
Même problème que je rencontre
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
il y a un meilleur moyen.
View.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 ce que Moonlightcheese a déclaré: Pour déclencher un événement de clic sur un bouton via le code dans Android, fournissez les éléments suivants:
buttonName.performClick();
vous pouvez le faire de cette façon
private Button btn;
btn = (Button)findViewById(R.id.button2);
btn.performClick();
Il suffit d'écrire cette simple ligne de code: -
button.performClick();
où button est la variable de référence de la classe Button et définie comme suit: -
private Button buttonToday ;
buttonToday = (Button) findViewById(R.id.buttonToday);
C'est ça.
callOnClick()
d'Android ( ajouté dans l'API 15 ) peut parfois être un meilleur choix, selon mon expérience, que performClick()
. Si un utilisateur sélectionne les sons de sélection activés, alors performClick()
peut amener l'utilisateur à entendre deux sons de sélection continus légèrement superposés qui peuvent être secousses. (Un son de sélection pour le premier clic de l'utilisateur, puis un autre pour le OnClickListener
de l'autre bouton que vous appelez via un code.)
À partir de API15, vous pouvez également utiliser callOnClick()
qui appelle directement la vue attachée OnClickListener. Contrairement à performClick (), cela n'appelle que l'écouteur et ne fait aucune action de clic associée, telle que le signalement d'un événement d'accessibilité.
Si vous n'utilisez pas l'argument sender
, pourquoi ne pas refactoriser l'implémentation du gestionnaire de boutons pour séparer les fonctions et l'appeler de n'importe où (à partir du gestionnaire de boutons et de l'autre endroit).
Quoi qu'il en soit, il s'agit d'une conception meilleure et plus propre - un code qui doit être appelé sur le gestionnaire de boutons ET à partir de certains autres emplacements mérite d'être refondu à sa propre fonction. De plus, cela vous aidera à séparer le traitement de l'interface utilisateur du code logique de l'application. Vous aurez également un nom agréable pour la fonction, pas seulement onDateSelectedButtonClick ().