Supponendo che si conoscere la lunghezza finale della stringa, si potrebbe im complemento un TextWatcher
in questo modo:
override fun setUp(view: View?) {
editText.addTextChangedListener(object : TextWatcher{
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence, p1: Int, p2: Int, p3: Int) {
if(p2 == 0 && (p0.length == 4 || p0.length == 9 || p0.length == 14))
editText.append(" ")
}
override fun afterTextChanged(p0: Editable?) {
}
})
È sufficiente aggiungere uno spazio di ogni blocco di 4 cifre. p2 == 0
è di assicurare che l'utente non stia eliminando, altrimenti otterrebbe il magazzino.
Il codice è in Kotlin, è possibile farlo esattamente allo stesso modo in Java.
questo codice dovrebbe essere effettivamente utilizzare un tipo di ciclo, non lunghezze hardcode come questo – Lukas1