Как изменить стандартный ClickSound во всем приложении из одного места - PullRequest
0 голосов
/ 24 февраля 2020

Можно ли изменить значение по умолчанию ClickSound во всем приложении android без необходимости реализации MediaPlayer в onButtonClickListener / onButtonTouchListener для каждой кнопки в приложении?

Поскольку в приложении имеется почти 20 Кнопки, кажется нерациональным реализовать onButtonClickListenr и воспроизводить звук в каждом действии или фрагменте. Было бы здорово, если бы мы могли изменить ClickSound в одном месте для приложения.

Будем рады услышать ваше мнение ...

1 Ответ

0 голосов
/ 24 февраля 2020

Вы можете создать функцию расширения для решения этой проблемы

ViewExtentions.kt

fun View.setOnClickListenerWithSound(action: () -> Unit) {
    val actionWithSound = ActionWithSound(context, action)

    setOnClickListener {
        actionWithSound.notifyAction()
    }
}

private class ActionWithSound(context: Context,private val action: () -> Unit) {

    private var mediaPlayer: MediaPlayer = MediaPlayer.create(context,R.raw.click )

    fun notifyAction() {
        mediaPlayer.start()
        action.invoke()
    }
}

и использовать ее как ниже:

someBtn.setOnClickListenerWithSound {
        // do what you want
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...