为什么onClickListener的启动,暂停,停止按钮只需要@override一次?

时间:2016-08-22 21:59:55

标签: java android

我了解如何开始,暂停和播放停一首歌,但为什么不是所有onClickListener()都需要一个@override?

我正在学习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);
        }
    });
}
}

1 个答案:

答案 0 :(得分:4)

没有方法需要 @Override

@Override是对编译器的提示,表示您认为要从超类重写方法或从接口实现方法。如果您有@Override,并且方法签名中存在错误(参数错误,返回类型错误等),编译器可以让您知道它。

您可以从代码清单中显示的一种方法中删除@Override,并且您的代码运行得很好。

拥有@Override是一个好主意,可帮助您在编写应用时捕获错误,但这不是必需的。