Как приостановить / остановить музыку, когда нажата кнопка возврата домой или назад? - PullRequest
0 голосов
/ 04 сентября 2018

Вот мой код. Я очень новичок в 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 аннотации!

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

В ваших кодах PoliceSound - это локальная переменная, которая отображается только в методе Oncreate(), как сказал Олег Соколов, вы должны объявить PoliceSound как поле класса.

О @Override, вы могли бы увидеть это хорошее объяснение

и в Android Studio, когда вы нажимаете ctrl + o в файле класса Java, вы можете переопределить метод суперкласса, и IDE автоматически добавит @Override для вас.

0 голосов
/ 04 сентября 2018

Чтобы обнаружить '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();
                    }
                }
            }
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...