我在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
无效?我在这里错过了什么?我知道这是一件非常小的事情,但我无法发现它。
答案 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);