Está en la página 1de 7

Nombre Alumno: Hernández Sánchez Marco Alejandro

Matricula: 98707

Grupo: K05

Docente Dr. Marco Tulio Cerón López

Materia: Aplicaciones Móviles

Actividad: N°. 4

Fecha: 26/03/2021

Lugar: Ciudad de México


Programar una aplicación para el sistema operativo Android donde sea posible hacer el registro de datos
personales.

Para empezar este proyecto hay que crear la siguiente vista en un proyecto Django que será el respaldo
de la aplicación móvil. La vista almacena usuario, contraseña, correo electrónico y organización.

@csrf_exempt
def androidRegister(request):
    if request.method==’POST’:
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)
        if user_form.is_valid():
            if profile_form.is_valid():
                user = user_form.save()
                user.set_password(user.password)
                user.save()
                profile = profile_form.save(commit=False)
                profile.user = user
                profile.save()
                return HttpResponse(“success”)
            else:
                return HttpResponse(“Invalid User or Organizacion”)
        else:
            return HttpResponse(“Username exist or Invalid Email”)
    else:
        print “entrando por get”
    return HttpResponse()

Ya una vez listo servidor, es hora de empezar con la aplicación android:

Abre android studio y crea un nuevo proyecto


Añade la librería Volley al proyecto  how to add volley to your android project
Crea el layout de la actividad principal. Para ello, puedes utilizar el siguiente xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Username" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextUsername" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="email" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextEmail" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:password="true"
android:id="@+id/editTextPassword" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Organizacion" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:password="true"
android:id="@+id/editTextOrganizacion" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Register"
android:id="@+id/buttonRegister" />
</LinearLayout>

Que generará la siguiente interfaz:


Lo siguiente es la lógica de la actividad principal que llevará a cabo el registro de los usuarios. Dicha
lógica se lleva a cabo en la clase MainActivity.java:
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
importcom.android.volley.toolbox.StringRequest;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

En esta parte se inicializan los componentes y se declaran las KEYS que vamos a utilizar para transmitir
información con el servidor:
public static final String REGISTER_URL = "http://192.168.1.34:8000/androidRegister/";
public static final String KEY_USERNAME = "username";
public static final String KEY_PASSWORD = "password";
public static final String KEY_EMAIL = "email";
public static final String KEY_ORGANIZACION = "organizacion";
private EditText editTextUsername;
private EditText editTextEmail;
private EditText editTextPassword;
private EditText editTextOrganizacion;
private Button buttonRegister;

Este es el método onCreate que se ejecutará al comenzar la actividad. Se encarga de inicializar la vista de
la actividad asi como los listener:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextUsername = (EditText)findViewById(R.id.editTextUsername);
editTextEmail= (EditText)findViewById(R.id.editTextEmail);
editTextPassword = (EditText)findViewById(R.id.editTextPassword);
editTextOrganizacion = (EditText)findViewById(R.id.editTextOrganizacion);
buttonRegister = (Button)findViewById(R.id.buttonRegister);
buttonRegister.setOnClickListener(this);
}

Este es el método que realiza el registro de usuario, obteniendo los datos del formulario de registro y
enviandolos al servidor:

private void registerUser(){


final String username = editTextUsername.getText().toString().trim();
final String email = editTextEmail.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
final String organizacion = editTextOrganizacion.getText().toString().trim();
Una vez que tenemos los datos, es necesario trasmitirlos al servidor mediante una petición http:
StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if(response.trim().equals("success Toast.makeText(Register.this, "Register OK",
Toast.LENGTH_LONG).show();
openLogin();
}else{
Toast.makeText(Register.this,response,Toast.LENGTH_LONG).show();
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(Register.this,error.toString(),Toast.LENGTH_LONG).show();
}
}){

Si nos fijamos en la petición, utiliza el método POST por lo que tenemos que indicar los parametros que
vamos a enviar al servidor, para ello, es necesario sobrecargar el método getParams():

@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put(KEY_USERNAME,username);
params.put(KEY_EMAIL, email);
params.put(KEY_PASSWORD,password);
params.put(KEY_ORGANIZACION,organizacion);
return params;
}
};

Por último, es necesario añadir el String-Request a la cola de peticiones de Volley


RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}

Además se va añadir r dos métodos más, onClick(View v) para controlar cuando el usuario quiere realizar
el registro y openLogin() que permite al usuario iniciar sesión si el registro se ha completado
sadisfactoriamente:

@Override
public void onClick(View v) {
if(v == buttonRegister){
registerUser();
}
}
private void openLogin(){
Intent intent = new Intent(this,Login.class);
startActivity(intent);
}
}

Finalmente, si ejecutamos la aplicación podemos observar como realiza registro correctamente e inicia
una nueva actividad para hacer login.

También podría gustarte