我有一些在MainActivity中播放声音的方法。
它们看起来像这样,工作正常。
public void hydrogen(){
final MediaPlayer mp = MediaPlayer.create(this, R.raw.hydrogen);
mp.start();
}
我想我应该把它们移到一个类中,这样我就可以在其他活动中使用这些方法。
这是我在课堂上学到的:
导入安卓系统媒体播放器;
public class Sounds {
void hydrogen(){
final MediaPlayer mp = MediaPlayer.create(this, R.raw.hydrogen);
mp.start();
}
}
在“这个”和R.原料氢下面有红色下划线。
当我把方法设为静态时,hydrogen下面的行消失了,但是我不能去掉this下面的行。
有人知道我做错了什么吗?
问题描述为:无法解析方法“create(com.xxmassdeveloper.lrwhack2.Sounds,int)”
谢谢
1条答案
按热度按时间ve7v8dk21#
MediaPlayer.create(Context context, int resid)
的第一个参数消耗Context
。如果你查看
Activity
类,它扩展了Context
,因此在Activity
类的函数中,你可以使用this
,它引用你所在的Activity
类。对于你的类
Sounds
来说,它只是一个简单的类,与Context
没有关系,所以你需要把Context
传入这个类,如下所示:然后,您可以将传递的
Context
用于您的函数。