Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.testtextwatcher
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import com.example.testtextwatcher.databinding.ActivityMainBinding
- import android.text.TextWatcher
- import android.text.Editable
- import android.view.View.OnFocusChangeListener
- class MainActivity : AppCompatActivity() {
- private lateinit var binding: ActivityMainBinding
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- binding = ActivityMainBinding.inflate(layoutInflater)
- val view = binding.root
- setContentView(view)
- var entrada =binding.editTextNumberDecimal
- var salida=binding.textView
- //texto.setText("algo") //Escritura en el EditText
- //TestWatcher A
- //Anado un Textwatcher a la entrada que es un "EditText"
- entrada.addTextChangedListener(object : TextWatcher {
- var antiguo="" //Texto en el EditText antes de modificar ..
- //Despues de cambiar el texto decimal mira si es inferior a 255
- override fun afterTextChanged(s: Editable) {
- if (s.toString().isNotEmpty()) { //Si la cadena no esta vacia
- if (s.toString().toInt() > 255) { //Si es mayor a 255
- entrada.setText("0")//La seteas a 0
- }
- }
- }
- //Recupera el texto antes de modificar y lo guarda en la variable local antiguo
- override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {
- antiguo=s.toString() //Recupera el texto antes de ser modificado
- }
- //Cada vez que modifico el texto
- override fun onTextChanged(s: CharSequence, start: Int,before: Int, count: Int) {
- //Cuando el texto cambia afecto un textView de salida
- salida.setText("Texto en el EditText : " + s) //debug
- //Limita a 3 caracteres la entrada de texto
- if ((s.toString().isNotEmpty()) and (s.toString().length > 3)){ //Limita a 3 caracteres
- entrada.setText(antiguo.substring(0,3))
- }
- }
- })
- //TestWatcher B
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement