Skip to content

A text and input validation library for Android, provides a simple way to validate input, and handles ui using ValidationEditText.

Notifications You must be signed in to change notification settings

tsuryo/ValidationEditText

Repository files navigation

ValidationEditText

Android library provides a simple way to validate input, and handles ui using ValidationEditText.

ValidationEditText

Prerequisites

Android 5.0+ API 21+

Where to

Features

  • Validate with built in patterns ValidationType
  • Validate with your own custom regex Custom pattern validation.
  • Customizable text size, text color.
  • Customizable backgrounds - all layout, input background.
  • Automatically showing/dismissing error on validation process.
  • Auto parse forms layout xml built with ValidationEditText.

Getting familiar

Classes you should be familiar with:

  • ValidationEditText - View that handles validation ui,
    showing error nicely with animations, hints, input, colors, etc.
    Handles validation logic as individual ValidationEditText.
  • EditTextValidator - This class will handle all the validation process,
    such as Parsing your xml, adding ValidationEditTexts,
    executing the actual validation process and more.
  • ValidationEditText attributes

Usage

Simplest way to use

Java

	mValidator = new EditTextValidator(this);
	mValidator.setLayout(this, R.layout.activity_main);

	button.setOnClickListener(new View.OnClickListener() {
	    @Override
	    public void onClick(View v) {
	        mValidator.validate();
	    }
	});

EditTextValidator(ValidationListener listener)

Implement this interface to get notified with the results.

    public interface ValidationListener {
        void onValidated();

        void onFailedToValidate();
    }

EditTextValidator#setLayout(Activity a, int layout)

Param a - Set the hosting Activity.
Param layout - Set the layout contains ValidationEditText resourceId.

EditTextValidator#setLayout(View v, int layout)

Param v - Set the hosting View - for fragments use it in onViewCreated(View view, @Nullable Bundle savedInstanceState)
Param layout - Set the layout contains ValidationEditText resourceId.

EditTextValidator

XML

	<com.tsoft.validationedittext.views.ValidationEditText
	    android:fontFamily="@font/satum"
	    android:hint="@string/enter_email"
	    app:error_text="Enter valid email address"
	    app:input_background="@drawable/vet_bg"
	    app:pattern="EMAIL"
	    app:text_color="@color/colorAccent" />

	<com.tsoft.validationedittext.views.ValidationEditText
	    android:hint="@string/enter_password"
	    app:custom_pattern="@string/pass_regex"
	    app:error_text="Custom error, enter valid"
	    app:input_background="@drawable/vet_bg"/>
Attribute Use to
android:inputType use to set the inputType
android:fontFamily use to set the font
android:hint use to set the hint text
android:text use to set the text
android:textColorHint use to set the hint color
android:textSize use to set the text size
android:background use to set the whole view background
input_background use to set the input background
text_color use to set the input text color
error_text use to set the error text to show on validation failure
et_text use to set the input text
pattern use to set the ValidationType
custom_pattern use to set custom regex pattern

Access this attributes from Java code using ValidationEditText
getters and setters - ValidationEditText

Other ways to use

  • Handle ValidationEditText individually
   ValidationEditText vet = findViewById(R.id.vEt);
   vet.setListener(new ValidationEditText.Listener() {
       @Override
       public void onValidated() {
           
       }

       @Override
       public void onFailure(String msg) {

       }
   });
   vet.validate();
   vet.addTextChangedListener(new TextWatcher() {
       @Override
       public void beforeTextChanged(CharSequence s, int start,
                                     int count, int after) {

       }

       @Override
       public void onTextChanged(CharSequence s, int start,
                                 int before, int count) {

       }

       @Override
       public void afterTextChanged(Editable s) {

       }
   });
  • Adding ValidationEditText manually to EditTextValidator
   /**
    * One at a time
    * */
   mValidator.addEditText(vet);
   /**
    * Adding using varargs
    * */
   mValidator.setEts(vet, vet1, vet2);
   /**
    * Adding a List<ValidationEditText>
    * */        
   mValidator.setEts(Arrays.asList(vet, vet1, vet2));

ValidationType

ValidationType Checks
EMAIL Checks for valid email pattern
PASSWORD Checks for min 8 characters, one capital, one small letter + one special character
PHONE Checks for valid phone pattern
WEB_URL Checks for valid web url pattern
IP_ADDRESS Checks for valid ip address pattern
NAME Checks for at least 2 characters, first capital letter
FULL_NAME Checks for min 2 characters, first capital letter -twice + space

Custom pattern validation

To use your own regex pattern:
2 options:

  • set custom_pattern in xml.
  <com.tsoft.validationedittext.views.ValidationEditText
      android:hint="Enter password"
      app:custom_pattern="(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,}"
      app:error_text="Custom error, enter valid"/>
  • set pattern in java
ValidationEditText vet = findViewById(R.id.vEt);
vet.setCustomPattern("(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,}");

Installing

Add the JitPack repository to your build file. Add it in your root build.gradle at the end of repositories:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

Add the dependency

dependencies {
        implementation 'com.github.tsuryo:ValidationEditText:v1.0'
}

About

A text and input validation library for Android, provides a simple way to validate input, and handles ui using ValidationEditText.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages