Как установить громкость для всех занятий в Android с помощью суперкласса? - PullRequest
0 голосов
/ 16 апреля 2020

Я знаю, как установить громкость для одного действия, но у меня есть несколько действий, и я не хочу писать один и тот же код во всех действиях, поэтому я попытался вырезать фрагмент и создал суперкласс, который расширяет AppCompatActivity Но Я не знаю, как получить доступ к этому классу для каждого действия.

Так что мой класс VolumeController выглядит следующим образом:

public class VolumeController extends AppCompatActivity {

    AudioManager audioManager;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);

        audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);

        int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

        SeekBar volumeControl = findViewById(R.id.seekBar);

        volumeControl.setMax(maxVolume);
        volumeControl.setProgress(currentVolume);

        volumeControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                Log.i("Seekbar changed", Integer.toString(progress));

                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }

Все в onCreate работает нормально, если оно реализовано по-своему Метод Activity onCreate, но он не работает, если я создал этот класс VolumeController ...

Моя активность выглядит следующим образом

public class GameActivity extends VolumeController {


    VolumeController volumeController = new VolumeController(); //Probably this is wrong?

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);

        //What to do here?

    }

Я думал, что если я расширю класс VolumeController, он унаследует все методы и атрибуты из суперкласса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...