2014-02-19 103 views
1
public class ClassOne implements MessageReceivedListener { 

    @Override 
    public void onMessageReceived(Message m) { 
     // TODO etc 
    } 

} 

裏面ClassOne我可以說foo.setOnMessageReceivedListener(this);如何設置另一個類的偵聽器?

如果我有另一個類稱爲ClassTwo,我怎麼可以將其監聽器設置爲ClassOne的聽衆?

如...

public class ClassTwo implements MessageReceivedListener { 

    public static void main(String[] args){ 
     setOnMessageReceivedListener(???); 
    } 

     @Override 
     public void onMessageReceived(Message m) { 
      // TODO etc 
     } 

} 

編輯:這是一個Android應用程序,這兩個類都是活動的,不是標準的Java類

+0

ClassOne和ClassTwo應具有如下功能setOnMessageReceivedListener。通常情況下,當您想要監聽其他課程的操作時,不需要回調。 – Triode

+0

您需要classOne中的第二個實例。例如'ClassOne one = new ClassOne(); setOnMessageRecievedListener(one);' –

+0

@ A.S。與此問題是,這是一個Android應用程序。我不創建這個類的一個實例。我只是將它作爲一個活動開始.. – Ogen

回答

0

那是不可能的。一次只能運行一個Activity。如果有幫助,請將您的應用程序的設計更改爲碎片,否則請重新考慮您的概念。

+0

@Clay - 如果你喜歡跟隨片段,那麼這裏就是一個例子。 http://manishkpr.webheavens.com/android-passing-data-between-fragments/ –

0
public class ClassTwo extends Activity implements MessageReceivedListener { 

    protected void onCreate(Bundle savedInstanceState) { 
     ClassOne myMessageListener = new ClassOne(); 
     myMessageListener.setOnMessageReceivedListener(this); 
    } 

    @Override 
    public void onMessageReceived(Message m) { 
     // TODO etc 
    } 

} 

我想這就是你想要什麼

+1

1. @Clay似乎指的是'Activities'。你會在你的代碼中得到一個NullPointerException。 –

相關問題