2011-07-28 51 views
0

我有一個主要處理UI的活動,並且我從其他類(不是服務)中完成大部分其餘活動。我從這門課做的一件事就是播放音頻。我需要做的是在音頻完成播放時告訴我的Activity(OnCompletionListener)。「調用」從一個類的UI活動方法

public class MyClass implements OnCompletionListener { 
      private MyActivity activity = new MyActivity(); 
public MyClass(){ 
} 
........... 
........... 
........... 
@Override 
    public void onCompletion(MediaPlayer mp) { 
     activity.onComplete(); 

    } 

} 

這是錯誤的,因爲「不能讓一個靜態引用從類型MyActivity非靜態方法的onComplete()。

我敢肯定,我使用Java錯的,但我不能弄清楚如何從類調用的onComplete(改變的onComplete靜態不更多鈔票)

編輯:。 增加了一個構造函數來MyActivity:

public MyActivity(){ 

    } 

並創建了一個MyActivity活動的實例(請參閱上面編輯的代碼),將它傳遞給該方法,但是當我執行activity.onComplete();時,它意外停止。 (我不知道爲什麼我的logcat不工作,我會回來,當我得到它的工作)

回答

0

只需將MyActivity的實例傳遞給MyClass並調用它的方法。這是有爭議的方法,但最好我可以建議你提供的信息。

+0

它在MyClass中拋出了一個Stackoverflow(有趣)錯誤:private MyActivity activity = new MyActivity();當MyClass創建一個MyClass實例時(在我遇到這個問題之前,並且不能刪除它)。 – leonsas

+0

無法通過構造函數創建活動,對不起。它們是由OS創建的。 –

+0

您有任何解決方案嗎? – leonsas

相關問題