通过播放声音的极小问题

时间:2014-04-27 11:44:35

标签: java android android-activity

我在PlaceholderFragment onCreateView

中有这个
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 个答案:

答案 0 :(得分:2)

这是因为您无法访问此行中的主要活动。

如果从片段中调用它,则应使用getActivity();

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

如果您尝试从静态方法或其他类

调用MainActivity.this

你应该使用上下文。

如果您可以添加完整代码,它也会有所帮助。

答案 1 :(得分:2)

MainActivity.this仅适用于MainActivity。在getActivity()

中使用Fragment
final MediaPlayer mp = MediaPlayer.create(getActivity(), R.raw.maria);