6 votes

Paramètre de vue Android pour la méthode OnClickListener

S'il vous plaît ne vous dérange pas si la question est stupide, mais s'il vous plaît j'ai besoin de clarifier ma confusion

Pour OnClickListener sur un bouton dans Android, j'ai mis ceci main.xml

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:text="Button"
    android:onClick="clicked"
/>

et dans le fichier java j'ai fait

  public void clicked(View v)
  {
   //  my code here 
  }

ma question est de savoir pourquoi nous devons passer View view lorsque nous appelons clicked méthode .

10voto

Pragnani Points 12259

AFAIK,

Parce que la méthode est appelée sans obtenir le bouton dans onCreate. Et pour accéder à ce bouton, vous devez avoir une vue.

i.e La vue v représente la vue de votre bouton.

Si vous voulez accéder au bouton, supposez que vous voulez obtenir du texte sur celui-ci. Comment l'obtenir sans accéder au bouton en utilisant la fonction findViewbyId ? vous obtiendrez un bouton comme celui-ci

Button b=(Button)v;

Pour obtenir le texte

String text=b.getText();

Donc ici nous n'obtenons pas le bouton en utilisant findViewById

En général, si vous voulez accéder au bouton, vous devez obtenir cet objet. Mais ici, vous l'obtiendrez à partir de la vue. Sans utiliser findViewById .

2voto

fedepaol Points 5743

La première raison qui me vient à l'esprit est que vous pourriez attacher plusieurs vues à la même méthode et en utilisant v.getId() vous pourriez vous comporter en fonction de la vue qui a été pressée.

D'une manière générale, avoir la vue liée à l'événement peut être utile pour plusieurs raisons, par exemple pour modifier certains de ses attributs.

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