2014-04-27 286 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