Android - quelque Chose de semblable à l'iPhone SDK Délégué Rappels?
J'ai juste changé au cours de l'iPhone à Android et suis à la recherche de quelque chose de similaire à l'endroit où dans le SDK de l'iPhone, quand une classe finitions d'une certaine tâche, il appelle délégué méthodes des objets en jeu comme les délégués.
Je n'ai pas besoin de trop de détails. Je suis allé à travers la documentation et de ne pas trouver quoi que ce soit (le plus proche que j'ai eu était de radiodiffusion "intentions" qui ressemblent plus à des iOS notifications).
Même si quelqu'un peut me pointer à la documentation correcte, ce serait formidable.
Merci!
- L'iphone paradagm est assez différente de l'Android un. Si vous expliquez ce que vous essayez d'accomplir avec cette, quelqu'un pourrait être en mesure pour vous aider à trouver les Android manière.
- Eh bien, je suis en utilisant un singleton objet qui encapsule le Android MediaPlayer objet et a son propre ensemble de méthodes pour lire une piste, la pause, la lecture, etc. Ce que je veux, c'est que lorsque la piste s'interrompt ou démarre, il doit "envoyer une notification" pour les classes de référence de l'objet singleton pour mettre à jour le bouton de lecture de l'image d'une icône de pause ou une icône de lecture. J'espère que cela a rendu les choses au clair?
Vous devez vous connecter pour publier un commentaire.
Jamais l'esprit... trouvé la réponse ici 🙂
http://www.javaworld.com/javaworld/javatips/jw-javatip10.html
Coller de l'article, afin de la préserver pour:
Développeurs spécialisés dans la programmation événementielle modèle de MS-Windows et le Système X Window sont habitués à passer des pointeurs de fonction qui sont invoquées (qui est, "rappelé") quand il se passe quelque chose. Java est orienté objet modèle ne prend pas en charge la méthode de pointeurs, et semble donc empêcher l'utilisation de cette confortable mécanisme. Mais tout n'est pas perdu!
De Java de soutien des interfaces fournit un mécanisme par lequel nous pouvons obtenir l'équivalent de rappels. L'astuce est de définir une interface simple qui déclare la méthode que nous souhaitons être invoquée.
Par exemple, supposons que nous voulons être notifié lorsqu'un événement se produit. Nous pouvons définir une interface:
Cela nous donne une adhérence sur tous les objets de classes qui implémentent l'interface. Donc, nous ne devons pas nous préoccuper de toutes les autres informations de type. C'est beaucoup plus agréable que de piratage trampoline C des fonctions qui utilisent le champ de données de widgets pour contenir un pointeur d'objet lors de l'utilisation de code C++ avec Motif.
La classe qui sera le signal de l'événement, il faut s'attendre à des objets qui implémentent les InterestingEvent interface et ensuite invoquer la interestingEvent() méthode appropriée.
Dans cet exemple, j'ai utilisé le somethingHappened prédicat de si oui ou non l'événement doit être déclenchée. Dans de nombreux cas, le fait même que la méthode a été appelée est suffisant pour justifier de la signalisation de la interestingEvent().
Le code qui souhaite recevoir la notification d'événement doit mettre en œuvre les InterestingEvent interface et juste passer une référence à lui-même à l'événement déclarant.
C'est tout là est à lui. J'espère utiliser ce simple Java idiome feront de votre passage à Java un peu moins nerveux.
Le contenu principal de ce tutoriel vidéo est de montrer comment utiliser les interfaces de délégué, les méthodes d'échange de données entre les différents Fragments et des activités, mais il est bon exemple pour apprendre comment délégué modèle peut être mis en œuvre en Java pour Android.
Le pendentif de kotlin.
Définir votre interface: Dans mon exemple je scan d'une carte de crédit avec une bibliothèque externe.
Créer une classe où vous pouvez inscrire votre
Activity
/Fragment
.Implémenter l'interface de votre
Activity
/Fragment
.CreditCard
est un modèle et pourrait être de définir comme bon vous semble. Dans mon cas, il comprend des marques, des chiffres, date d'expiration ...Après que vous pouvez appeler
scanIOScanner.startScanningCreditCard()
où vous le souhaitez.Java de rappel n'est pas la même chose qu'ios délégué, dans ios, vous pouvez utiliser un callback près de la même façon que pour Android. Sur Android il y a
startActivityForResult
qui peuvent vous aider à mettre en œuvre les tâches pour ce ios délégué est utilisé.Je crois
ListAdapter
est un exemple de délégation de modèle dans Android.