Inicio » Cursos » App Minimarket QR

Curso App Minimarket QR

Capitulo 10 ➜ Login

Login

¿Cómo programar un Login básico en Android usando una API Rest ?

Para implementar un Login enviamos una petición con el email y password a la API, obteniendo una respuesta que procesamos en la App, creando una sesión

Para implementar un Login enviamos una petición con el email y password a la API, obteniendo una respuesta que procesamos en la App, creando una sesión

activity_login.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".LoginActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_margin="100dp"
        android:orientation="vertical"
        android:gravity="center_horizontal"
        android:layout_height="match_parent">
        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/txtemail"
            android:hint="Email:"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/txtpassword"
            android:hint="Password:"
            android:inputType="textPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/btnlogin"
            android:text="LOGIN"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <Button
            android:id="@+id/btnlanzarregistro"
            android:text="REGISTRO"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </LinearLayout>

</LinearLayout>

 

LoginActivity.java

package com.example.minimarketqr;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.material.textfield.TextInputEditText;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.JsonHttpResponseHandler;
import com.loopj.android.http.RequestParams;

import org.json.JSONException;
import org.json.JSONObject;

import cz.msebera.android.httpclient.Header;

public class LoginActivity extends AppCompatActivity {

    private Button btnlogin, btnlanzarregistro;
    private TextInputEditText txtemail, txtpassword;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        setTitle("LOGIN");
        String sesion = GetSession();
        if(!sesion.isEmpty()){
            startActivity(new Intent(getApplicationContext(),CategoriasActivity.class));
            finish();
        }

        btnlogin = findViewById(R.id.btnlogin);
        btnlanzarregistro = findViewById(R.id.btnlanzarregistro);
        txtemail = findViewById(R.id.txtemail);
        txtpassword = findViewById(R.id.txtpassword);

        btnlogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(txtemail.getText().toString().isEmpty())
                    Toast.makeText(getApplicationContext(),"INGRESE EMAIL", Toast.LENGTH_LONG).show();
                else if(txtpassword.getText().toString().isEmpty())
                    Toast.makeText(getApplicationContext(),"INGRESE PASSWORD", Toast.LENGTH_LONG).show();
                else
                    login(txtemail.getText().toString(),txtpassword.getText().toString());
            }
        });

        btnlanzarregistro.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(),RegistroActivity.class));
            }
        });
    }
    private void login(String email, String password){
        // http
        RequestParams params = new RequestParams();
        params.put("login",true);
        params.put("email",email);
        params.put("password",password);

        AsyncHttpClient client = new AsyncHttpClient();
        client.post(Config.urlsite+"login.php",params, new JsonHttpResponseHandler(){
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                super.onSuccess(statusCode, headers, response);
                try {
                    if(response.getBoolean("success")){

                        SaveSession(response.getString("id"));
                        startActivity(new Intent(getApplicationContext(),CategoriasActivity.class));
                        Log.d("mensaje","Bienvenido"+response.getString("id"));
                    }else{
                        Log.d("mensaje","no existe user");
                    }
                }catch (JSONException e){
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
                super.onFailure(statusCode, headers, throwable, errorResponse);
                Log.d("mensaje error",errorResponse.toString());
            }
        });

    }

    private void SaveSession(String id){
        SharedPreferences s = getSharedPreferences("user", Context.MODE_PRIVATE);
        SharedPreferences.Editor e = s.edit();
        e.putString("user",id);
        e.apply();
    }
    private String GetSession(){
        SharedPreferences s = getSharedPreferences("user",Context.MODE_PRIVATE);
        return s.getString("user","");

    }
}

 


939 visitas

Sigue con el curso: Capítulo 11 – Registro

Descarga el código del proyecto

Descarga el código fuente del proyecto adquiriendo el curso completo

Descargar ahora

Más cursos que pueden interesarte

Más cursos

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023