Comment passer des paramètres à OnClickListener?
Comment puis-je passer des paramètres à un OnClickListener() ?
Obtenu mon Écouteur:
OnClickListener myListener = new OnClickListener()
{
@Override
public void onClick(View v)
{
//I want to reach params here
}
};
J'ai eu 12 boutons et je ne veux pas écrire 12 auditeurs pour eux, il serait idéal pour se passer d'une chaîne à eux et qu'ils peuvent faire complètement différente des choses.
Vous devez vous connecter pour publier un commentaire.
Utiliser votre propre OnClickListener
Une autre solution pour ce problème, vous pouvez créer une méthode régulière et passer à la
View
vous souhaitez ajouter leonClickListener
, et passer le paramètres vous souhaitez utiliser avec:Processus de votre chaîne de caractères selon le bouton sur lequel l'utilisateur a cliqué
Je sais que c'est une réponse tardive mais j'espère que ça peut aider quelqu'un. Aucune des réponses travaillé dans ma situation, mais j'ai fini par utiliser la setTag fonction d'une image que d'agir comme un bouton. Les infos de mon compte était dans une variable membre qui a été mis en place lors de l'activité a démarré.
Dans ce cas, je suis en train de monter une table avec chaque ligne de compte. Les informations de compte sont indiquées lorsque l'image est cliquée (l'image est juste une info sur l'icône).
Donc:
utilisation implémente OnClickListener comme le code ci-dessous
Si vous avez du contenu statique associée à la vue, une autre option est d'utiliser un
HashMap
à la carte de l'identification du contenu.Initialiser la carte dans
onCreate
:Alors d'obtenir la valeur à partir de l'affichage de l'id dans
onClick
:C'est un peu plus propre que l'utilisation d'une longue série de commutateur cas.
Remarque que vous faites cela dans la Kotlin un peu différemment de la façon dont vous le faire en Java. Dans Kotlin, vous ajoutez
NameOfParentClass()
à la sous-classe de la déclaration.Maintenant remplacer l'Activité
onCreate()
méthode. Il ressemblera à quelque chose comme ça.Une autre solution peut être de ne pas écrire directement le code à l'intérieur onClick() la méthode, sinon, écrire le code dans une méthode distincte, et puis appelez la méthode onClick().
Exemple: