martes, 21 de mayo de 2019

Validar Datos(Editext) en Android Studio

Como les comente en mi ultimo entrada empezare a publicar artículos de  android studio para el desarrollo de aplicaciones android con java.

En esta ocasión les traigo algo muy sencillo pero que seguro a muchos a los que empiezan a realizar aplicaciones en android studio les servirá mucho, y es que cuando estamos desarrollando aplicaciones algo muy esencial es poder validar o controlar la entrada de datos por parte del usuario.

Así que hoy veremos 3 validaciones esenciales en toda aplicación.
  1. Validar que los campo de texto(Editext) no esten vacíos.
  2. Validar que valor ingresado sea un valor numérico.
  3. Validar el ingreso de una dirección de correo electrónico.
Lo primero que aremos sera crear un proyecto android vació al que llamaremos ValidarEditext

Nuevo Proyecto


El diseño de nuestra aplicación sera la siguiente

Diseño


Les explico como funcionara en la primera parte tenemos 2 Editext en donde se deben ingresar valores numéricos si los  valores ingresados son numéricos al presionar el botón Sumar mostrara la suma de los valores en el Textview, luego tenemos otro Editext donde se debe ingresar un correo electrónico al presionar el botón Validar Correo validaremos si el dato ingresado es un correo o no.

Una vez que tenemos nuestro diseño  agregaremos una clase a nuestro proyecto a la cual le llamaremos Validaciones esta clase sera donde crearemos los métodos para hacer las validaciones antes mencionadas(lo aremos en una clase para tener el código mas ordenado, poder aplicar, poo, para así poder reutilizar el código en todas las vistas).

clase
En esta clase tendremos el siguiente código

  
package com.example.validareditext;

import android.text.TextUtils;
import android.util.Patterns;
import android.widget.EditText;

public class Validaciones {

 //metodo para validar si es un valor numerico
    public  boolean isNumeric(String cadena) {
        boolean resultado;
        try {
            Integer.parseInt(cadena);
            resultado = true;
        } catch (NumberFormatException excepcion) {
            resultado = false;
        }
        return resultado;
    }

    //metodo para validar si es un email
    public  boolean isEmail(String cadena) {
        boolean resultado;
        if (Patterns.EMAIL_ADDRESS.matcher(cadena).matches()) {
            resultado = true;
        } else {
            resultado = false;
        }

        return resultado;
    }

    //metodo para validar si editext esta vacio
    public  boolean Vacio(EditText campo){
        String dato = campo.getText().toString().trim();
        if(TextUtils.isEmpty(dato)){
            campo.setError("Campo Requerido");
            campo.requestFocus();
            return true;
        }
        else{
            return false;
        }
    }
}



Como pueden observar dentro de nuestra clase creamos 3 métodos boolean para hacer las validaciones.
isNumeric este método nos servirá para validar si el dato ingresado(una cadena) es un valor numérico para eso hacemos uso de la clase Integer de su método parseInt, el método nos devuelve verdadero(true) si el dato es un valor numérico y falso(false) si el dato no es un valor numérico
isEmail con este método validamos si el valor ingresado(una cadena) es un correo o no haciendo uso de la clase Patterns, si el dato es un correo el método nos devolverá verdadero(true), y si no lo es nos devolverá falso(false)
Vacio este método recibe un parámetro de tipo Editext el cual verificamos que no este vació haciendo uso de la clase TextUtils y su método isEmpty, si el campo esta vació retornara verdadero y mostramos un mensaje y le mandamos el foco al campo vació, si el campo no esta vació nos devolvera falso(false)

Ahora para implementar estos métodos nos vamos a nuestra clase activity y lo primero que aremos sera enlazar nuestros controles a la vista

  
public class MainActivity extends AppCompatActivity {
    EditText edtNumero1,edtNumero2,edtcorreo;
    TextView resultado;
    Validaciones  objValidar; //objeto de nuestro clase Validaciones

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //enlazo controles a la vista
        edtNumero1 = findViewById(R.id.edtNumero1);
        edtNumero2 = findViewById(R.id.edtNumero2);
        edtcorreo = findViewById(R.id.edtCorreo);
        resultado = findViewById(R.id.txtresultado);
        objValidar = new Validaciones();
    }


Luego implementaremos los métodos para cada botón de la siguiente manera(asignaremos a cada botón el método correspondiente en el atributo onClick)
  
 //metodo para evento boton Sumar
    public void Sumar(View v){
        //capturo datos editext
        String numero1 = edtNumero1.getText().toString().trim();
        String numero2 = edtNumero2.getText().toString().trim();
        //valido que los editext no esten vacios
        if(!objValidar.Vacio(edtNumero1) && !objValidar.Vacio(edtNumero2) ){
            //valido que los datos ingresados sean numeros
            if(objValidar.isNumeric(numero1) && objValidar.isNumeric(numero2)){
                //si son numeros hago la suma
                int num1 = Integer.parseInt(numero1);
                int num2 = Integer.parseInt(numero2);
                int suma = num1+num2;
                resultado.setText("la suma es :"+suma);
            }
            else{
                //si los  valores no son numericos
                Toast.makeText(getApplicationContext(),"Ingrese Valores Numericos", Toast.LENGTH_SHORT).show();
            }
        }
    }

    //metodo para evento boton validar correo
    public void Validar(View v) {
        //capturo dato de editext
        String correo = edtcorreo.getText().toString().trim();
        //valido que editext no este vacio
        if (objValidar.Vacio(edtcorreo)) {
            //valido si el dato ingresado es un correo
            if (objValidar.isEmail(correo)) {
                Toast.makeText(getApplicationContext(), "El Correo es  Valido", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "Correo NO Valido", Toast.LENGTH_SHORT).show();
            }
        }
    }

Por medio del objeto que creamos objValidar de nuestra clase Validaciones podremos hacer uso de los métodos que creamos enviando los argumentos correspondientes a cada método para hacer las respectivas validaciones
Capturas

Bueno eso seria todo, les dejo el proyecto para que lo descarguen.
Saludos desde El Salvador...

Descargar Proyecto Android

Si quieren donarme para una soda lo pueden hacer aqui.


0 comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.