2011-10-28 10 views
1

私はbroadcastreceiverとMapActivityの両方のプロパティを継承する必要があるプログラムを持っています。実際に私は現在の場所(経度と緯度)を友人からSMSを受け取って送っています。私はコードを持っていますが、1つのクラスで2つのクラスのプロパティを継承する方法は?

http://pastebin.com/53ZJH3iN

は私にこれが不可能な場合は、このまたは任意の他のアプローチを解決するためにいくつかのアイデアを教えてください:自分のコードは、両方のclasses.Hereのプロパティを継承しているのですか?

答えて

2

javaは多重継承を禁止するので、実際にはできません。あなたは秘密の恩恵を受けるためのアプリケーションを計画しているので、あなたは何の活動も必要としません - ちょうど放送受信機 ロケーションサービスとcomunicatesと取得場所をどこかに送信します。

+0

しかし、私のコードは、あなたがMapActivityを継承せずに緯度と経度を取得するために私のコードを変更する方法を教えerror.Canを見せているgetsystemserviceを()が関与locationmanagerを使用していますか? –

+0

あなたは、間違いを見せてあげますか? –

+0

私のコードを修正しました。更新されたコードpastebin.com/yKitMftUですが、新しい問題が発生しました。その場所(経度と緯度)を送信する代わりに、送信者から送信されたメッセージ自体に含まれる送信者の場所が送信されます。このコードは、送信者の代わりに受信者の場所を送信することができます。これで私を助けることができますか? –

0

Javaは複数の継承をサポートしていませんが、あなたが望むだけの数のインターフェースを実装することができます。ここに一つの概要がありますが、あなたがそれをやることができる多くの方法があります。基本的な考え方は、継承したいクラスのいずれか、または両方に対して、ある実装への参照を持ち、実際の実装への委譲によって同じインタフェースを公開するということです。

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

class SomeMapActivityImpl { 
... 
} 

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

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

... 
} 
関連する問題