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.
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.
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="20dip">
<EditText android:id="@+id/txtEmail"
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/btnLogin"
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_register"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
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"
android:gravity="center"
android:textSize="20dip"
android:textColor="#0b84aa"/>
</LinearLayout>
<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.
TextView lblGotoRegister;
Button btnLogin;
EditText inputEmail;
EditText inputPassword;
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);}
});
}
}
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.
TextView lblGotoLogin;
Button btnRegister;
EditText inputFullName;
EditText inputEmail;
EditText inputPassword;
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);}
});
}
}
Bueno, hasta aqu de momento. Las prximas semanas iremos viendo las siguientes
partes de este ejercicio. No os lo perdis!
Total: