Professional Documents
Culture Documents
LoginActivity
package com.example.lab_login;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Patterns;
import android.view.View;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.Toast;
EditText txtEmail;
EditText txtPassword;
EditText txtConfirmarPassword;
Switch swRecordarUsuario;
SharedPreferences preferencias;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
iniciarControles();
CargarPreferenciasUsuario();
}
if(emailIngresado.isEmpty() || !
Patterns.EMAIL_ADDRESS.matcher(emailIngresado).matches())
{
Toast.makeText(this, "Error formato de email no valido",
Toast.LENGTH_SHORT).show();
return false;
}
if(passwordIngresado.isEmpty() || passwordIngresado.length() < 4 ||
!passwordIngresado.equals(confirmarPasswordIngresado))
{
Toast.makeText(this, "Error password no valido minimo 4
digitos", Toast.LENGTH_SHORT).show();
return false;
}
return true;
}
private void CargarPreferenciasUsuario() {
email = preferencias.getString("email", "");
password = preferencias.getString("password","");
recordar = preferencias.getBoolean("recordarusuario", false);
if(!email.isEmpty() && !password.isEmpty()) {
txtConfirmarPassword.setVisibility(View.INVISIBLE);
if (recordar == true) {
txtEmail.setText(email);
txtPassword.setText(password);
swRecordarUsuario.setChecked(true);
} else
swRecordarUsuario.setChecked(false);
}
}
}
MainActivity
package com.example.lab_login;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu1,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId())
{
case R.id.menu_cerrarsession: cerrarSession(); return true;
case R.id.menu_olvidarusuario: olvidarUsuario(); return true;
}
return super.onOptionsItemSelected(item);
}
import android.app.Application;
import android.os.SystemClock;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
public class SplashActivity extends AppCompatActivity {
SharedPreferences preferencias;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preferencias = getSharedPreferences("preferencias",
Context.MODE_PRIVATE);
boolean recordarUsuario =
preferencias.getBoolean("recordarusuario",false);
if(recordarUsuario == true)
{
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
else
{
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
finish();
}
}
Activity Login XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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"
tools:context=".LoginActivity">
<TextView
android:id="@+id/textView"
android:layout_width="110dp"
android:layout_height="31dp"
android:text="Iniciar Sesion"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.022" />
<EditText
android:id="@+id/editTextEmail"
android:layout_width="290dp"
android:layout_height="56dp"
android:ems="10"
android:hint="Ingrese su Email"
android:inputType="textEmailAddress"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.112" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="290dp"
android:layout_height="54dp"
android:layout_marginTop="78dp"
android:ems="10"
android:hint="Contraseña"
android:inputType="textPassword"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.487"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.136" />
<EditText
android:id="@+id/editTextConfirmarPassword"
android:layout_width="291dp"
android:layout_height="50dp"
android:layout_marginTop="84dp"
android:ems="10"
android:hint="ConfirmarPassword"
android:inputType="textPassword"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.483"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.244" />
<Switch
android:id="@+id/swRecordar"
android:layout_width="199dp"
android:layout_height="46dp"
android:layout_marginTop="40dp"
android:text="Recordar Usuario"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.712"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.418" />
<Button
android:id="@+id/button"
android:layout_width="164dp"
android:layout_height="64dp"
android:layout_marginTop="56dp"
android:onClick="btnIniciarSesionClick"
android:text="INICIAR SESION"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.445"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.564" />
</androidx.constraintlayout.widget.ConstraintLayout>
ActivityMain XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hola Pantalla Principal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
CAPTURAS DE PANTALLA