9
votes

Classe commune pour click auditeur

J'ai 7 boutons de toutes mes 6 activités. Tous les 6 boutons ont la même fonctionnalité dans toutes les activités. Comment puis-je effectuer un écouteur d'événement de clic courant pour ces 6 boutons?


2 commentaires

Quelle est cette tâche commune?


Quoi qu'il puisse être. Affichage du toast pour tous les boutons.


7 Réponses :


0
votes

Faire fonctionner dans une classe et mettre cette classe dans le même paquet où toutes les autres classes sont là. Appelez simplement cette fonction dans 6 onclicklisteners.


0 commentaires

3
votes

avoir une classe comme ceci: xxx

puis dans votre autre classe, faites-le ce xxx


0 commentaires

0
votes

Vous pouvez le faire,

Mettez les événements clic dans les fichiers XML Android: Cliquez = "ClickMe"

Créer cette fonction dans une activité / code> dire xxx

et étendre cette activité par toutes vos activités.


2 commentaires

J'ai oublié de mentionner que je gonflons la mise en page des boutons dans toutes les activités. Donc, dans ce cas, comment puis-je faire ça.


Gardez le fichier de mise en page du bouton sous forme de fichier de présentation XML distinct et incluez cela dans toutes vos dispositions d'activité. Cela donnera également un avantage de la réutilisation du code et de la modification facile.



12
votes

Vous pouvez créer une nouvelle classe qui implémente view.onclicklistener comme ceci: xxx pré>

dans toutes vos activités, vous pouvez définir la liste des clics tels que ceci: p> xxx Pre>

Vous pouvez même enregistrer le contexte dans la classe pour afficher des toasts, etc. P>

public class MyClickListener implements View.OnClickListener {
    private Context context;

    public MyClickListener(Context context) {
        this.context = context;
    }

    @Override
    public void onClick(View view) {
         Button button = (Button) view;
         Toast.makeText(this.context, button.getText().toString(), Toast.LENGTH_SHORT).show();
    }
}


1 commentaires

Wow .. quelle solution simple. Je me demande pourquoi vous n'aviez pas de +1 jusqu'à maintenant. Merci.



0
votes

Vous pouvez faire comme suit

créer une activité de base p> xxx pré>

étend maintenant vos activités à partir de celui-ci p> xxx pré> P> Dans quels boutons vous devez implémenter l'onCliquez l'utilisation suivante dans XML P>

android:onClick="onSpecificEvent"


0 commentaires

2
votes

Mettre plus de mots dans la réponse de Sagar donnée ci-dessus.

Assomption:

Comme vous l'avez dit avoir 7 boutons dans vos 6 activités, je suppose que tous les 7 boutons ont la même fonctionnalité / code. < / P>

Solution:

Étape 1: Inclure Android: click = "BTNFirsclick" Dans À l'intérieur de vos mises en page XML.

Étape 2: Définissez la classe de base abstraite en prolongeant l'activité et inclure des méthodes avec le même nom que vous avez données dans Android: OnClick attribut. xxx

étape 3: prolonge maintenant cette base de toutes vos 6 activités.

Par exemple: xxx


2 commentaires

J'ai oublié de mentionner que je gonflons la mise en page des boutons dans toutes les activités. Donc, dans ce cas, comment puis-je faire.


@Urandroïd merci de vous avoir gaspillé de tous temps !!



0
votes

Si vous êtes dans la même situation comme moi, j'ai une mise en page linéaire avec un nombre indéterminé de boutons (générés de manière dynamique) et vous voulez un auditeur commun pour tout le bouton (déconnectez-vous leur texte par exemple), vous. peut faire comme ça xxx

maintenant tous les enfants (boutons) de la disposition linéaire ont le même clic d'auditeur


0 commentaires