Livro 2 - Projeto da Mini-Calculadora

6. Lógica da Aplicação

6.5. Interface SeekBarListener

De acordo com a iteração do usuário, o tratamento de eventos de uma SeekBar dispara três métodos: onProgressChangedonStartTrackingTouch onStopTrackingTouch.  Para  o  nosso  caso,  é necessário implementar apenas o primeiro, o resto fica em branco. Assim, a se mover a barra de progresso o programa deve atualizar o novo valor da porcentagem. Contudo, lembre que o valor da barra de progresso na SeekBar varia de 0 a 30, assim o novo valor de porcentagem deve receber o valor inteiro da barra de progresso e converter em %, isto é, dividir por 100. Por fim, invoca-se o método calculate() para refazer os cálculos da aplicação.

private val seekBarListener = object : SeekBar.OnSeekBarChangeListener{
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
//atualiza a variável com o novo valor
percent = progress/100.0
//atualiza UI
percentTextView?.text = percentFormat.format(percent)
//manda o programa executar os cálculos
calculate()
}

override fun onStartTrackingTouch(seekBar: SeekBar?) {}

override fun onStopTrackingTouch(seekBar: SeekBar?) {}
}