我了解如何开始,暂停和播放停一首歌,但为什么不是所有onClickListener()都需要一个@override? p>
我正在学习MediaPlayer& AudioManager目前并且想了解下面MainActivity.java上布局的原因。
final MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.desiigner_panda);
Button playButton = (Button) findViewById(R.id.Play_Button);
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Toast.makeText(MainActivity.this, "I'm Done", Toast.LENGTH_SHORT);
}
});
}
});
Button pauseButton = (Button) findViewById(R.id.Pause_Button);
pauseButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mediaPlayer.pause();
}
});
Button unMuteButton = (Button) findViewById(R.id.Unmute_Button);
unMuteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mediaPlayer.setVolume(1,1);
}
});
Button MuteButton = (Button) findViewById(R.id.Mute_Button);
MuteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mediaPlayer.setVolume(0,0);
}
});
}
}
答案 0 :(得分:4)
没有方法需要 @Override
。
@Override
是对编译器的提示,表示您认为要从超类重写方法或从接口实现方法。如果您有@Override
,并且方法签名中存在错误(参数错误,返回类型错误等),编译器可以让您知道它。
您可以从代码清单中显示的一种方法中删除@Override
,并且您的代码运行得很好。
拥有@Override
是一个好主意,可帮助您在编写应用时捕获错误,但这不是必需的。