这是我的代码。我是Java的新手,我知道这个问题已经发布了,但是仍然没有得到预期的前哨,所以我不得不发布。
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MediaPlayer policeSound = MediaPlayer.create(this, R.raw.police);
Button policeSounds = (Button) this.findViewById(R.id.police);
policeSounds.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (policeSound.isPlaying()){
policeSound.stop();
}
else {
policeSound.start();
}
}
});
}
}
我尝试向其中添加onBackPressed()
代码,但是它无法检测到'policeSound',就像在先前方法中检测到的一样!
还有人甚至请教我如何使用@Override
批注!
答案 0 :(得分:0)
要以其他方法检测“ policeSound”,您需要使其成为类的字段:
private MediaPlayer policeSound;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
policeSound = MediaPlayer.create(this, R.raw.police);
Button policeSounds = (Button) this.findViewById(R.id.police);
policeSounds.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
if (policeSound.isPlaying()) {
policeSound.stop();
} else {
policeSound.start();
}
}
}
);
}
答案 1 :(得分:0)
在您的代码中, policeSound 是一个局部变量,仅在Oncreate()
方法中可见,如Oleh Sokolov所说,您应将 policeSound 声明为字段上课。
关于@Override
,您可以see this good explanation
在android studio中,当您在Java类文件中按ctrl + o
时,您可以覆盖超类方法,IDE会自动为您添加@Override
。