Quelqu'un pourrait-il m'aider à créer une interface d'écoute définie par l'utilisateur avec des extraits de code?
135
Créez un nouveau fichier:
MyListener.java
:
public interface MyListener {
// you can define any parameter as per your requirement
public void callback(View view, String result);
}
Dans votre activité, implémentez l'interface:
MyActivity.java
:
public class MyActivity extends Activity implements MyListener {
@override
public void onCreate(){
MyButton m = new MyButton(this);
}
// method is invoked when MyButton is clicked
@override
public void callback(View view, String result) {
// do your stuff here
}
}
Dans votre classe personnalisée, appelez l'interface si nécessaire:
MyButton.java
:
public class MyButton {
MyListener ml;
// constructor
MyButton(MyListener ml) {
//Setting the listener
this.ml = ml;
}
public void MyLogicToIntimateOthers() {
//Invoke the interface
ml.callback(this, "success");
}
}
WeakReference<>
dans ce cas, mais vous ne pouvez pas faire de l'auditeur une classe anonyme ou quoi que ce soit où l'auditeur n'a pas d'autres références ... il serait donc préférable de ne pas l'utiliserVeuillez lire le modèle d'observateur
interface d'écoute
alors dans ta classe dis
Event
classedans votre classe de conducteur
MyTestDriver
la source
Interface
GenericAsyncTask
Jetez un oeil à cette , cette question pour plus de détails.
la source
Il y a 4 étapes:
1. créer une classe d'interface (auditeur)
2. utiliser l'interface dans la vue 1 (définir la variable)
3. implémente l'interface pour la vue 2 (vue 1 utilisée dans la vue 2)
4. passer l'interface de la vue 1 à la vue 2
Exemple:
Étape 1: vous devez créer une interface et définir une fonction
Étape 2: utilisez cette interface en vue
Étape 3, 4: implémente l'activité
la source
Créez une interface d'écoute.
Et créez la méthode setOnCustomClick dans une autre activité (ou fragment), où vous souhaitez appliquer votre écouteur personnalisé ......
Appelez cette méthode à partir de votre première activité et passez l'interface d'écoute ...
la source
En 2018, plus besoin d'interfaces d'écoute. Vous disposez d'Android LiveData pour vous permettre de renvoyer le résultat souhaité aux composants de l'interface utilisateur.
Si je vais prendre la réponse de Rupesh et l'ajuster pour utiliser LiveData, cela ressemblera à ceci:
et maintenant dans votre classe de pilote MyTestDriver:
Pour plus d'informations ainsi que des exemples de code, vous pouvez lire mon article à ce sujet, ainsi que la documentation officielle:
Quand et pourquoi utiliser LiveData
Documents officiels
la source
Sous Android, vous pouvez créer une interface telle que Listener et votre activité l'implémente, mais je ne pense pas que ce soit une bonne idée. si nous avons de nombreux composants pour écouter les changements de leur état, nous pouvons créer un écouteur d'interface d'implémentation BaseListener, et utiliser le code de type pour les gérer. nous pouvons lier la méthode lorsque nous créons un fichier XML, par exemple:
et le code source:
mais je ne pense pas que ce soit une bonne idée ...
la source
J'ai fait quelque chose comme ci-dessous pour envoyer ma classe modèle de la deuxième activité à la première activité. J'ai utilisé LiveData pour y parvenir, avec l'aide des réponses de Rupesh et TheCodeFather.
Deuxième activité
"liveSong" est AudioListModel déclaré globalement
Appelez cette méthode dans la première activité
Puisse cela aider les nouveaux explorateurs comme moi.
la source
Méthode simple pour faire cette approche. Implémente d'abord le
OnClickListeners
dans votre classe d'activité.Code:
la source