View.OnClickListener, méthode ou classe?
désolé si cette question est stupide, mais je ne peut pas envelopper la tête autour de la syntaxe Java..j'ai appris le C/C++
Je sais que la Vue est une classe qui est bon..mais je ne comprends pas si une Vue.OnClickListener() est une méthode.
J'en doute, sauf si elle retourne un objet?
Je pense que la Vue est une classe qui a un statique OnClickListener l'objet de membre..une fois de plus qui ne fait pas de sens pour moi..
Certains peuvent-ils expliquer ce qui se passe avec cette ligne de code?
button1 = (Button) findByView(R.id.button1) ;
button1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
}
}
Donc ce qui se passe avec ce code?
Button1
est une référence à l'objet button1 dans le fichier xml.
button1
objet est un objet membre setOnClickListener
qui j'ai à partir de son nom je suppose initialise un événement du bouton ou de quelque chose. Mais il reçoit View.OnClicListener()
objet.
Je suis confus par ce..onClick reçoit un objet de Vue, de sorte onClickListener
n'est pas un objet renvoie un objet de Vue?? Je ne comprends pas du tout.
Quelqu'un peut m'expliquer ce qui se passe dans cette ligne View.onClickListener()
est-il une autre façon de dire new this
?
source d'informationauteur Lews Therin
Vous devez vous connecter pour publier un commentaire.
Afficher.OnClickListener
est une interfacevous ne l'appelez pas, mais crée une nouvelle instance de (new View.OnClickListener()
est un appel au constructeur)L'instance que vous créez est de la classe anonyme que
implements
View.OnClickListener
dans les supports droit, en vertu denew View.OnClickListener()
Toute classe qui implémente
View.OnClickListener
doit mettre en œuvre les méthodes déclarées dans l' (par exemple,onClick)setOnClickListener
enregistre uniquement la référence à la Vue.OnClickListener exemple que vous avez fourni, et quand quelqu'un clique sur le bouton, leonClick
méthode de l'auditeur défini est appelé.OnClickListener est une interface. Une interface fournit un ensemble de Méthodes, d'autres classes peuvent mettre en œuvre. http://download.oracle.com/javase/tutorial/java/concepts/interface.html
Vous pourriez avoir une autre classe (Comme et adaptateur), qui s'étend OnClickListener, puis votre Carte de classe pourrait ajouter la méthode "OnClick(View v)", et il serait également capable de gérer les événements de Clic. Ou vous pouvez utiliser le code que vous avez posté, où il vous suffit de créer une classe anonyme, qui implémente OnClickListener.
-Woody
Code Android est adapté pour des événements en fonction des réponses. Le bloc de code est comme suit:
Trouver un bouton que vous avez ajouté à la mise en page active, et de l'assigner à une variable locale:
Définir le clic de l'auditeur pour le bouton. C'est une classe qui sera appelée lorsque le bouton enregistre un événement. La classe est construite ici, c'est anonyme tant que vous n'avez pas l'affecter à une variable, mais android permettra de garder une trace de la référence.
Des événements de bouton sont toujours le fait d'être pressé, alors quand le bouton de registres qu'il a été pressé, il en informe le onClickListener classe que le même produit, et de passer lui-même à la vue. Le onClickListener est construit comme:
Que onClick méthode est utilisée par l'auditeur pour gérer l'événement (dans ce cas, l'appui sur un bouton). Donc, vous pouvez mettre le code que vous souhaitez exécuté dans la méthode.
Pour répondre directement à votre question, la onClickListere est une classe anonyme qui définit la méthode onClick, qui va gérer des événements de bouton.