EditText Extensions
EditText Validation
This extension hellps to validate whether the EditText's value has a valid email, minimum and maximum length etc.
```kotlin tab="EditTextExtensions.kt" import android.text.Editable import android.text.TextWatcher import android.widget.EditText
/* * Created by Chathura Wijesinghe on 2019-06-12. * cdanasiri@gmail.com /
/* * This extension supports EditText validation such as emails, maximum and minimum length * / fun EditText.afterTextChanged(afterTextChanged: (String) -> Unit) { this.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { afterTextChanged.invoke(s.toString().trim()) }
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
})
}
/* * You can validate the EditText like * * et_email.validate("Valid email address required"){ s -> s.isValidEmail() } * * et_email.validate("Minimum length is 6"){ s-> s.length>=6 } * * / fun EditText.validate(message: String, validator: (String) -> Boolean) : Boolean{ this.afterTextChanged { this.error = if (validator(it)) null else message } this.error = if (validator(this.getString())) null else message
return validator(this.getString())
}
/* * @return String value of the EditTextView * / fun EditText.getString(): String{ return this.text.toString() }
/* * @return Trimmed String value of the EditTextView * / fun EditText.getStringTrim(): String{ return this.getString().trim() }
### Usage
```kotlin tab="Email address validation"
var isEmail = et_email.validate("Valid email address required"){ s -> s.isValidEmail() }
kotlin tab="Text length validation" et_email.validate("Minimum length is 6"){ s-> s.length>=4 && s.length<=10 }
String email validation extension
Email validation extension required to validate the email kotlin fun String.isValidEmail(): Boolean = this.isNotEmpty() && Patterns.EMAIL_ADDRESS.matcher(this.trim()).matches()