es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo cambiar la longitud de la cadena desde la seekbar en Android Kotlin

Estoy tratando de hacer un generador de contraseñas según la longitud del valor de la barra de búsqueda.

Por ejemplo, cuando la barra de búsqueda está en 12, el generador de contraseñas mostrará 12 caracteres aleatorios.

La aplicación funciona bien con una longitud fija, que en este caso es de 16. MainActivity.

class MainActivity : AppCompatActivity() {

    private lateinit var _binding : ActivityMainBinding
    private var startPoint = 0
    private var endPoint = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        _binding = ActivityMainBinding.inflate(layoutInflater)
        val view = _binding.root
        setContentView(view)

        _binding.apply {

            generate.setOnClickListener {
                val generatePassword = randomID()
                Password.text = generatePassword
            }

            seekbar.setOnSeekBarChangeListener(object: SeekBar.OnSeekBarChangeListener{
                override fun onProgressChanged(
                    seekBar: SeekBar?,
                    progress: Int,
                    fromUser: Boolean
                ) {
                    volume.text = progress.toString()
                }

                override fun onStartTrackingTouch(seekBar: SeekBar?) {
                    startPoint = seekBar?.progress ?: 0
                }

                override fun onStopTrackingTouch(seekBar: SeekBar?) {
                    endPoint = seekBar?.progress ?: 0
                }

            })
        }

    }

    private  fun randomID() : String = List(16)  {
        val strings = (('a'..'z') + ('A'..'Z') + ('0'..'9'))
        strings.random()
    }.joinToString("")
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer que el generador de contraseñas esté de acuerdo con la longitud del valor de la barra de búsqueda, debes modificar la función randomID que genera una contraseña de 16 caracteres. En lugar de codificar la longitud como 16, puedes utilizar el valor ‘progress’ de la barra de búsqueda para generar una contraseña de esa longitud.

    Una forma de modificar la función randomID es reemplazando el número ’16’ en el constructor de la lista con el valor ‘progress’ que se pasa desde el oyente de la barra de búsqueda.

    Aquí está el código modificado:

    private  fun randomID() : String = List(_binding.seekbar.progress)  {
          val strings = (('a'..'z') + ('A'..'Z') + ('0'..'9'))
            strings.random()
        }.joinToString("")
    

    Con esta modificación, el generador de contraseñas generará una contraseña de la longitud especificada por la barra de búsqueda.

Comments are closed.