2011-10-28 3 views
1

J'ai un programme qui nécessite d'hériter des propriétés de broadcastreceiver et MapActivity.En fait, je veux envoyer l'emplacement actuel (longitude et latitude) sur la réception d'un sms d'un ami.J'ai un code avec moi, mais je ne sais pas comment hériter des propriétés à la fois le classes.Here est mon code:Comment hériter des propriétés de deux classes dans une classe?

http://pastebin.com/53ZJH3iN

S'il vous plaît me donner une idée de résoudre ce ou toute autre approche si cela est impossible?

Répondre

2

Comme java interdit l'héritage multiple, vous ne pouvez pas le faire. Comme vous planifiez l'application pour srveyliance caché, vous n'avez besoin d'aucune activité - juste un récepteur de diffusion qui communique avec le service de localisation et envoie l'emplacement obtenu quelque part.

+0

Mais mon code utilise LocationManager impliquant getsystemservice() qui est montrant error.Can-vous me dire comment modifier mon code pour obtenir la longitude et la latitude sans héritant MapActivity? –

+0

Oserez-vous montrer votre erreur? –

+0

J'ai corrigé mon code.Voici mon code mis à jour pastebin.com/yKitMftU Mais un nouveau problème vient.Au lieu d'envoyer son emplacement (longitude et latitude) il envoie l'emplacement de l'expéditeur qui vient dans le message lui-même après envoyé de l'expéditeur.Je veux ce code pour envoyer l'emplacement du destinataire au lieu de l'expéditeur. Pouvez-vous m'aider avec ceci? –

0

Java ne prend pas en charge l'héritage multiple, mais vous pouvez implémenter autant d'interfaces que vous le souhaitez, ce qui vous permet de le faire via la composition. Voici un aperçu, mais il y a plusieurs façons de le faire. L'idée de base est que pour l'une ou les deux classes dont vous voulez hériter, vous avez une référence à une implémentation et vous exposez la même interface par délégation à l'implémentation réelle.

interface MapActivity { 
    Coordinates getCoordinates(); 
... 
} 

class SomeMapActivityImpl { 
... 
} 

class ReceivelocationActivity extends BroadcastReceiver implements MapActivity { 
    private MapActivity mapActivity = new SomeMapActivityImpl(); 

    public Coordinates getCoordinates() { 
    return mapActivity.getCoordinates(); 
    } 

... 
} 
Questions connexes