【发布时间】:2012-06-29 12:10:02
【问题描述】:
我是 android 开发的新手,我正在尝试开发一个简单的应用程序,其中一个按钮用于播放声音。我正在尝试使用 SoundPool,发现每个教程都提供了这样的代码,以便在制作 soundpool 对象后添加:
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
但是当我尝试在 Eclipse 中使用此代码时,它会说
new SoundPool.OnLoadCompleteListener(){} 类型的方法 onLoadComplete(SoundPool, int, int) 必须覆盖超类方法。 并建议删除@override 符号。如果没有这种方法应该会发生这种情况??为什么会出现这个错误?
当我把 soundID = soundPool.load(this, R.raw.mysound, 1);
在上面的代码之后,eclipse说SoundPool类型中的方法load(Context, int, int)不适用于参数(new View.OnClickListener(){}, int, int)
这是我的全部代码: 公共类 FirstActivity 扩展 Activity { /** 在第一次创建活动时调用。 */
private SoundPool soundPool;
int soundID;
boolean loaded = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bPlay = (Button) findViewById(R.id.bPlay);
final TextView aRing = (TextView)findViewById(R.id.tAlarmRinging);
bPlay.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
aRing.setVisibility(View.VISIBLE);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
soundID = soundPool.load(this, R.raw.mysound, 1);
}
});
}
}
【问题讨论】:
-
构建时是否编译??
-
它也给了我更多的错误,即使我删除了 ovverride 符号
-
您的项目是否在属性中有 8 个 API 级别?
标签: android