You are on page 1of 9

Laboratorio Splash Activity

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;

public class LoginActivity extends AppCompatActivity {

EditText txtEmail;
EditText txtPassword;
EditText txtConfirmarPassword;
Switch swRecordarUsuario;

SharedPreferences preferencias;

//informacion del shared preferences


String email;
String password;
Boolean recordar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);

iniciarControles();
CargarPreferenciasUsuario();
}

public void guardarUsuario()


{
SharedPreferences.Editor editor = preferencias.edit();
editor.putString("email",txtEmail.getText().toString());
editor.putString("password",txtPassword.getText().toString());
editor.putBoolean("recordarusuario", swRecordarUsuario.isChecked());
editor.apply();
}
public void btnIniciarSesionClick(View view)
{
if(validarDatos())
{
guardarUsuario();
mostrarPantallaPrincipal();
}
}

private void mostrarPantallaPrincipal() {


Intent intent = new Intent(this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}

private boolean validarDatos()


{
if(!email.isEmpty()&& !password.isEmpty())
{
if(txtPassword.getText().toString().equals(password)&&
txtEmail.getText().toString().equals(email))
return true;
else
{
Toast.makeText(this,"Error de datos de ingreso
incorrectos!!",Toast.LENGTH_SHORT).show();
return false;
}
}
else //usuario nuevo
{
String emailIngresado = txtEmail.getText().toString();
String passwordIngresado = txtPassword.getText().toString();
String confirmarPasswordIngresado =
txtConfirmarPassword.getText().toString();

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);
}
}

private void iniciarControles()


{
txtEmail = findViewById(R.id.editTextEmail);
txtPassword = findViewById(R.id.editTextPassword);
txtConfirmarPassword = findViewById(R.id.editTextConfirmarPassword);
swRecordarUsuario = findViewById(R.id.swRecordar);
preferencias = getSharedPreferences("preferencias",
Context.MODE_PRIVATE);

}
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;

public class MainActivity extends AppCompatActivity {

@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);
}

private void olvidarUsuario()


{
SharedPreferences preferencias = getSharedPreferences("preferencias",
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferencias.edit();
editor.remove("email");
editor.remove("password");
editor.remove("recordarusuario");
editor.apply();
cerrarSession();

private void cerrarSession()


{
Intent intent = new Intent(this,LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
MyApp
package com.example.lab_login;

import android.app.Application;
import android.os.SystemClock;

public class MyApp extends Application {


@Override
public void onCreate()
{
super.onCreate();
SystemClock.sleep(5000);
}
}
SplashActivity
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;
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

You might also like