You are on page 1of 9

View this page in: English

Translate

Turn off for: Spanish

Options

Buscar

Inicio

Guas de Instalacin

Programacin Android

Servicios y Redes

Contacto

Concenos

Anterior Siguiente ENTR AD AS POPULAR ES

Creando nuestro sistema de registro y login: Android (I)


8 de agosto de 2012 por 3pies

Aplicaciones para usar la Webcam en Linux Particionado y formateado de un disco duro o pen en Ubuntu Aadir un icono personalizado al lanzador de Unity Conversores de vdeo en Ubuntu Leyendo servicios web desde Android: JSON Creando nuestro sistema de registro y login: Android (I) Cmo aadir publicidad en Android Cmo crear una mquina virtual en Ubuntu 11.10

Buenas, despus de una semana de descanso y volvemos con un tema que muchos de vosotros seguramente habis pensado en incluir en vustras apps, un sistema de registro y login. El que vamos a hacer aqu es un sistema muy sencillo y no nos meteremos en cuestiones complicadas. Lo nico que os advertimos es que guardar datos de otros usuarios conlleva sus responsabilidades y hay que ser cuidadoso y meticuloso con la forma de tratar estos datos.

El sistema constar de una parte Android que ser el cliente que se conectar a un servidor, que en este caso ser como siempre un servidor Apache con PHP. Est parte ser a gusto del programador y cada uno podr implementar esta parte en su lenguaje preferido, .NET, Java... Bueno, empezaremos por crear las pantallas o layouts, necesitaremos uno para la pantalla de login, otra para el registro y otra que ser muy muy sencilla que ser la pantalla principal a donde enviaremos al usuario una vez logado y que cada uno personalizar a su gusto y necesidades.
AR C H I VO
2013 (30) 2012 (131) diciembre (6) noviembre (13) octubre (10)

octubre (10) septiembre (5)

La primera pantalla ser la de login, ser una pantalla muy simple con dos textbox, uno para el email y otro la contrasea, y un button para enviar la informacin. Veamos como queda.

agosto (6) julio (15) junio (8) mayo (12) abril (18) marzo (8) febrero (14) enero (16)

<?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="fill_parent"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="20dip">


2011 (183)

<EditText android:id="@+id/txtEmail" android:layout_height="wrap_content"

android:layout_width="fill_parent" android:hint="Email" android:inputType="textEmailAddress" /> 2010 (161)


2009 (67)

<EditText android:id="@+id/txtPass" android:layout_height="wrap_content" android:layout_marginTop="15dip" android:layout_marginBottom="30dip" />

android:layout_width="fill_parent" android:hint="Password" android:inputType="textPassword"


LTI M OS C OM ENTAR I OS

2008 (9)

<Button android:id="@+id/btnLogin" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="enviar"

ramon Me funciona "bien", el problema es que en el logcat me marca error de que no cierro la android:layout_gravity="center_horizontal" android:paddingLeft="15dip" android:paddingRight="15dip" /> base de datos, cuales son las consecuencias de no cerrar la bd?, ya que repito me hace bien la consulta, y... <TextView android:id="@+id/link_to_register" Nosinmiubuntu | Ubuntu en concreto, GNU/Linux en general: Crea un buscador android:layout_width="fill_parent" en Android: AutoCompleteTextView 5 android:layout_height="wrap_content" hours ago

android:layout_marginTop="40dip" android:layout_marginBottom="40dip" android:text="registrate!" android:gravity="center" android:textSize="20dip" android:textColor="#0b84aa"/> <TextView android:id="@+id/login_error" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="40dip" android:layout_marginBottom="40dip"
borja Hola! Como se podria guardar la imagen en la galeria? Nosinmiubuntu | Ubuntu en concreto, GNU/Linux en general: Seleccionando imagenes en Android (estilo Facebook) 12 hours ago

borja Hola! Tengo el mismo problema que cristina! he anadido el permiso para la camara, por si acaso, pero no ha solucionado el problema, sigo obteniendo null! sabeis por que es eso? quizas la manera de...

android:gravity="center" android:textSize="20dip" android:textColor="#0b84aa"/> </LinearLayout>

quizas la manera de... Nosinmiubuntu | Ubuntu en concreto, GNU/Linux en general: Seleccionando imagenes en Android (estilo Facebook) 14 hours ago

ETI QUETAS

La siguiente pantalla ser la de registro bastante parecida a la anterior. Aqu a mayores pedimos un nombre de usuario para poder utilizar en la aplicacin en lugar del email.

Android Escritorio Fedora Firefox


GNU/Linux Instalacin Linux programacin

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Ubuntu

USB

android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="20dip" android:orientation="vert <EditText android:id="@+id/txtUserName" android:layout_height="wrap_content" android:layout_width="fill_parent" android:hint="UserName" android:inputType="text" /> <EditText android:id="@+id/txtEmail" android:layout_marginTop="15dip" android:layout_height="wrap_content" android:layout_width="fill_parent" android:hint="Email" android:inputType="textEmailAddress" /> <EditText android:id="@+id/txtPass" android:layout_height="wrap_content" android:layout_width="fill_parent" android:hint="Password" android:inputType="textPassword" android:layout_marginTop="15dip" android:layout_marginBottom="30dip" />

<Button android:id="@+id/btnRegister" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="enviar" android:layout_gravity="center_horizontal" android:paddingLeft="15dip" android:paddingRight="15dip" /> <TextView android:id="@+id/link_to_login" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="40dip" android:layout_marginBottom="40dip" android:text="Ya tienes cuenta! Accede!"

android:gravity="center" android:textSize="20dip" android:textColor="#0b84aa"/> <TextView android:id="@+id/register_error" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="40dip" android:layout_marginBottom="40dip" android:gravity="center" android:textSize="20dip" android:textColor="#0b84aa"/>

</LinearLayout>

Ahora crearemos las dos activities para los layouts que acabamos de crear, no os olvideis de declararlos tambin en el archivo AndroidManifest.xml. Veamos primero que hace la Activity de Login.

public class Login extends Activity { private TextView lblGotoRegister; private Button btnLogin; private EditText inputEmail; private EditText inputPassword; private TextView loginErrorMsg; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login);

inputEmail = (EditText) findViewById(R.id.txtEmail); inputPassword = (EditText) findViewById(R.id.txtPass); btnLogin = (Button) findViewById(R.id.btnLogin); loginErrorMsg = (TextView) findViewById(R.id.login_error); btnLogin.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { String email = inputEmail.getText().toString(); String password = inputPassword.getText().toString(); Usuario usuario = new Usuario(); usuario.setOnLoginUsuario(new OnLoginUsuario() { @Override public void onLoginWrong(String msg) {loginErrorMsg.setText(msg);} @Override public void onLoginCorrect(JSONObject json, String msg) { loginErrorMsg.setText(""); Intent itemintent = new Intent(Login.this, ActivityPrincipal.class); Login.this.startActivity(itemintent); } }); usuario.login(Login.this, email, password); } }); lblGotoRegister = (TextView) findViewById(R.id.link_to_register); lblGotoRegister.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {Intent itemintent = new Intent(Login.this, Register.class); Login.this.startActivity(itemintent);} }); } }

Como veis el cdigo es muy sencillo, declaramos e inicializamos los elementos. El botn de login se encarga de inicializar una clase Usuario que veremos ms adelante, por lo pronto vemos que tiene un mtodo login al que le pasamos el contexto de la activity, un email y una contrasea que se encargar de enviar al servidor para validar. En el listener onLoginUsuario podremos saber si el login es correcto o errneo o si se ha producido algn tipo de error. En el caso de ser un login correcto enviamos al usuario a la activity de la pantalla principal. Por ltimo tenemos otro botn que enva al usuario a la pantalla de registro por si este no se ha creado un usuario todava. Vamos a ver como sera el cdigo de esta pantalla.

public class Register extends Activity { private TextView lblGotoLogin; private Button btnRegister; private EditText inputFullName; private EditText inputEmail; private EditText inputPassword; private TextView registerErrorMsg; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.register); inputFullName = (EditText) findViewById(R.id.txtUserName); inputEmail = (EditText) findViewById(R.id.txtEmail); inputPassword = (EditText) findViewById(R.id.txtPass); btnRegister = (Button) findViewById(R.id.btnRegister); registerErrorMsg = (TextView) findViewById(R.id.register_error); btnRegister.setOnClickListener(new View.OnClickListener() { public void onClick(View view) {

String name = inputFullName.getText().toString(); String email = inputEmail.getText().toString(); String password = inputPassword.getText().toString(); Usuario usuario = new Usuario(); usuario.setOnRegisterUsuario(new OnRegisterUsuario() { @Override public void onRegisterFinish(JSONObject json, String msg) { registerErrorMsg.setText(""); Intent itemintent = new Intent(Login.this, ActivityPrincipal.class); Register.this.startActivity(itemintent);> } @Override public void onRegisterFail(String msg) {registerErrorMsg.setText(msg);} @Override public void onRegisterException(Exception e, String msg) {registerErrorMsg.setText(msg);} }); usuario.register(Register.this, name, email, password); } }); lblGotoLogin = (TextView) findViewById(R.id.link_to_login); lblGotoLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {Intent itemintent = new Intent(Register.this, Login.class); Register.this.startActivity(itemintent);} }); } }

Como en la pantalla de Login, volvemos a inicializar todo, y seguimos utilizando una clase Usuario. En este caso hacemos uso de un mtodo llamado register al que pasamos el contexto de la activity, un nombre, email y

contrasea. Como antes en un listener llamado onRegisterUsuario nos dir si todo ha ido bien o si ha fallado algo. En el caso de ir todo bien la clase Usuario se encarga de hacer el login y acceder a la pantalla principal de la aplicacin. Bueno, hasta aqu de momento. Las prximas semanas iremos viendo las siguientes partes de este ejercicio. No os lo perdis!

Etiquetas 3pies, Android, daniel, Login, Registro, Ubuntu, Usuario . permalink.

GOOGLE+ F OLLOWER S

TWI TTER

BLOGR OLL

Nosinmiubuntu
Seguir

Ubunlog

Tweets
Nosinmiubuntu @nosinmiubuntu Expand Nosinmiubuntu @nosinmiubuntu Expand Nosinmiubuntu @nosinmiubuntu

Cmo cambiar la posicin de los botones de las ventanas en Ubuntu Usemos Linux Emacs #1

Ahora mismo tengo instalado Ubuntu 13.10 con Gnome. Al principio no me convenca, pero tras personalizarlo co

Planeta Linux Espaa Miguel Parada: Creando claves super-mega-

seguras sin despeinarte Creis que finalmente Debian adoptar XFCE como entorno? A m Gnome Shell me parece que ha mejorado, aun Ubuntizando el planeta Creando claves super-mega-seguras sin despeinarte

481 nos tienen en sus crculos.


TR ANSLATE
Select Language

Ver todo

Cmo validar diferentes tipos de datos en Android: Hace poco hablamos de las annotations en Android y hoy os Expand Nosinmiubuntu
Planet Ubuntu Disponible Linux Mint 16 Mostrar todo

Tweet to @nosinmiubuntu

NosinmiUbuntu
Ubuntu en concreto, GNU/Linux en general

You might also like