Inicio » Cursos » App Minimarket con lector QR

Curso App Minimarket con lector QR

Capitulo 10 ➜ 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","");

    }
}

 


1091 visitas

« Capítulo 9 – Creación del Proyecto

Capítulo 11 – Registro »

Descarga el código del proyecto

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

Comprar

Más cursos que pueden interesarte

Más cursos

© Copyright Codea App | LATAM | 2020 - 2024