DevNippets
  • Android
  • Kotlin Extensions
    • EditText Validation Extensions
    • AlertDialog Extensions
  • Linux / Unix
    • Git Commands
    • Linux Basic Commands
  • Libraries and Tools
    • Android Libraries
Powered by GitBook
On this page
  • EditText Validation Extensions
  • To validate Email address
  • To check minimum and Maximum length

Was this helpful?

  1. Kotlin Extensions

EditText Validation Extensions

PreviousAndroidNextAlertDialog Extensions

Last updated 5 years ago

Was this helpful?

EditText Validation Extensions

You can validate EditText whether it has a valid email, minimum and maximum length validation etc.

Login validation
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()
}

To validate Email address

/**
* Add StringExtention to validate the emails 
*
*	fun String.isValidEmail(): Boolean = this.isNotEmpty() &&
*        Patterns.EMAIL_ADDRESS.matcher(this.trim()).matches()
* 
*/
var isEmail = et_email.validate("Valid email address required"){ s -> s.isValidEmail() }

To check minimum and Maximum length

et_email.validate("Minimum length is 6"){ s-> s.length>=4 && s.length<=10 }