Inicio » Cursos » App Minimarket QR

Curso App Minimarket QR

Capitulo 11 ➜ Registro

Registro

¿Cómo programar un registro de usuarios en Android ?

Para programar un registro de usuarios usamos una API Rest que devuelve el resultado de insertar al usuario en la BD Mysql, con esta creamos una sesión en

Para programar un registro de usuarios usamos una API Rest que devuelve el resultado de insertar al usuario en la BD Mysql, con esta creamos una sesión en 

activity_registro.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=".RegistroActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_margin="100dp"
        android:gravity="center_horizontal"
        android:layout_height="wrap_content">
        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/txtnombre"
            android:hint="Nombre:"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <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/btnregistro"
            android:text="REGISTRO"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </LinearLayout>

</LinearLayout>

RegistroActivity.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 RegistroActivity extends AppCompatActivity {

    private Button btnregistro;
    private TextInputEditText txtnombre,txtemail, txtpassword;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_registro);
        setTitle("REGISTRO");
        String sesion = GetSession();

        if(!sesion.isEmpty()){
            startActivity(new Intent(getApplicationContext(),CategoriasActivity.class));
            finish();
        }

        btnregistro = findViewById(R.id.btnregistro);
        txtnombre = findViewById(R.id.txtnombre);
        txtemail = findViewById(R.id.txtemail);
        txtpassword = findViewById(R.id.txtpassword);

        btnregistro.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(txtnombre.getText().toString().isEmpty())
                    Toast.makeText(getApplicationContext(),"INGRESE NOMBRE", Toast.LENGTH_LONG).show();
                else 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
                    registro(txtnombre.getText().toString(),txtemail.getText().toString(),txtpassword.getText().toString());
            }
        });
    }

    private void registro(String nombre, String email, String password){
        // http
        RequestParams params = new RequestParams();
        params.put("registro",true);
        params.put("nombre",nombre);
        params.put("email",email);
        params.put("password",password);

        AsyncHttpClient client = new AsyncHttpClient();
        client.post(Config.urlsite+"registro.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 se puedo registrar");
                    }
                }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","");

    }

}

 


723 visitas

Sigue con el curso: Capítulo 12 – BD SqLite

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