2014-04-27 348 views
1

我有這個極小的問題,我PlaceholderFragmentonCreateView在播放聲音

final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.maria); 
mp.start(); 

但它給我下面的錯誤:

No enclosing instance of the type MainActivity is accessible in scope 

爲什麼MainActivty.this不工作?我在這裏錯過了什麼?我知道這是非常小的事情,但我無法發現它。

回答

2

MainActivity.this只適用於MainActivity。在Fragment使用getActivity()

final MediaPlayer mp = MediaPlayer.create(getActivity(), R.raw.maria); 
+0

現在的聲音將不會啓動:( – chility

+1

檢查設備的體積開始歌曲 – SacreDeveloper

+0

時,哦,現在它起着罰款:P – chility

2

發生這種情況是因爲您無法訪問此行中的主要活動。

如果你從片段調用它,你應該使用getActivity();

final MediaPlayer mp = MediaPlayer.create(getActivity(), R.raw.maria); 

,如果你正試圖從一個靜態方法或從另一個類

你應該使用情況下呼叫MainActivity.this。

它也有幫助,如果你可以添加你的完整代碼。

+0

是的,它是一個'static'類 – chility