Android setOnclicklistener paramètre
Je suis un débutant d'android, tout en fixant onclick auditeur à un bouton, quel est le paramètre passé moyenne:
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
}
});
donc, "new OnClickListener ()", il est passé à une méthode ne devrait pas être un objet à?
si ce n'est pas un objet; alors comment pouvons-nous utiliser le "nouveau" mot clé?
pourquoi "onclick()" est appelée directement, sans utiliser le mot clé "this", ou son nom de la classe.
- Salut odo nous sommes de passage d'un objet comme argument.Fondamentalement, nous créons de l'intérieur de la classe qui remplace la méthode onClick.
Vous devez vous connecter pour publier un commentaire.
OnClickListener est un interface et en utilisant
new OnClickListener()
en tant que paramètre pour btn1.setOnClickListener c'est en fait la création d'un Anonyme Intérieur De La Classe qui implémente OnClickListener. Et la méthode onClick doit avoir besoin d'être déclarée depuis sa une méthode abstraite à l'intérieur de l'interface de la classe. Tout code que vous écrivez à l'intérieur onClick sera exécuté lorsque le bouton est enfoncé.Mise à jour
faire à l'aide de Anonyme intérieur de la classe d'un objet:
de le faire sans l'aide de la classe Anonyme:
La seule différence entre ces approches est, si votre bouton contient cliquez sur le code d'événement qui est censé être valide/disponible pour ce bouton, puis vous pouvez utiliser l'intérieur de la classe que vous faites dans votre code (parce qu'elle est facile à faire tout de suite). Cependant, si il ya plusieurs boutons qui exigent même l'exécution de code sur l'événement onClick puis vous pouvez définir écoute comme un objet et de les leur transmettre.
Pour instancier un objet, d'une interface ou une classe abstraite, vous devez remplacer l'ensemble de ses pas mis en œuvre des méthodes (méthodes abstraites). Vous pouvez remplacer les méthodes abstraites, soit en utilisant la classe anonyme ou de la définition d'une classe qui étend la classe abstraite/implémente l'interface et de remplacer les méthodes abstraites. Cependant, pour plus de clarté, vous pouvez le faire comme ceci:
et l'utilisation d'une catégorie distincte, vous pouvez le faire comme ceci:
Définition de l'Interface pour une fonction de rappel à appeler lorsque la vue est cliqué.
abstract void onClick(View v)
Appelé lors d'un point de vue a été cliqué.
est une interface. Avec le nouveau mot clé de déclarer une nouvelle objet d'un anonyme intérieur de la classe qui implémente l'interface. Qui s de la base de question pour
que android. Vous devriez envisager de lecture sur
Lire sur les classes anonymes en Java.
OnClickListener
est une interface. Cela signifie que si vous définissez le code html que vous avez créé une classe anonyme qui est juste implimenting l'interface à l'intérieur de la méthode de jeu.Si vous souhaitez créer une
OnClick
classe. Vous faites quelque chose comme cela:Ensuite, vous pouvez utiliser:
C'est plus Java d'android, Lire sur les Interfaces et Classes internes