PDA

Ver la Versión Completa : ayuda con checkbox para recordar datos en android


deth
28/08/15, 19:03:59
hola amigos quiero hacer un checkbox que me permita recordar el usuario y la contraseña de mi login en android pero ya he intentado todo y no puedo hacerlo, el checkbox cuando este activo debera recordar los datos y cuando este inactivo dejara de recordarlos, aqui les dejo mi codigo:

login.xml



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

<EditText
android:id="@+id/editTextUserNameToLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Usuario" >

<requestFocus />
</EditText>

<EditText
android:id="@+id/editTextPasswordToLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Clave"
android:inputType="textPassword" />

<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Recordar Datos" />

<Button
android:id="@+id/buttonSignIn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Aceptar" />

</LinearLayout>



HomeActivity.java



package com.techblogon.loginexample;

import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class HomeActivity extends Activity
{
Button (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+butto n) btnSignIn,btnSignUp;
LoginDataBaseAdapter loginDataBaseAdapter;

override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+butto n) close_Button = (Button (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+butto n)) findViewById(R.id.close_Button);
close_Button.setOnClickListener(new OnClickListener() {

override
public void onClick(View (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+view) v) {
finish();
}
});



// create a instance of SQLite Database
loginDataBaseAdapter=new LoginDataBaseAdapter(this);
loginDataBaseAdapter=loginDataBaseAdapter.open();

// Get The Refference Of Buttons
btnSignIn=(Button (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+butto n))findViewById(R.id.buttonSignIN);
btnSignUp=(Button (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+butto n))findViewById(R.id.buttonSignUP);

// Set OnClick Listener on SignUp button
btnSignUp.setOnClickListener(new View (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+view) .OnClickListener() {
public void onClick(View (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+view) v) {
// TODO Auto-generated method stub

/// Create Intent for SignUpActivity and Start The Activity
Intent intentSignUP=new Intent(getApplicationContext(),SignUPActivity.clas s);
startActivity(intentSignUP);
}
});
}
// Methos to handleClick Event of Sign In Button
public void signIn(View (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+view) V)
{
final Dialog (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+dialo g) dialog = new Dialog (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+dialo g)(HomeActivity.this);
dialog.setContentView(R.layout.login);
dialog.setTitle("Ingresar");

// get the Refferences of views
final EditText editTextUserName=(EditText)dialog.findViewById(R.i d.editTextUserNameToLogin);
final EditText editTextPassword=(EditText)dialog.findViewById(R.i d.editTextPasswordToLogin);

Button (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+butto n) btnSignIn=(Button (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+butto n))dialog.findViewById(R.id.buttonSignIn);

// Set On ClickListener
btnSignIn.setOnClickListener(new View (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+view) .OnClickListener() {

public void onClick(View (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+view) v) {
// get The User name and Password
String (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+strin g) userName=editTextUserName.getText().toString();
String (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+strin g) password=editTextPassword.getText().toString();

// fetch the Password form database for respective user name
String (http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+strin g) storedPassword=loginDataBaseAdapter.getSinlgeEntry (userName);

// check if the Stored password matches with Password entered by user
if(password.equals(storedPassword))
{
Toast.makeText(HomeActivity.this, "Ingreso Satifactorio", Toast.LENGTH_LONG).show();
dialog.dismiss();
}
else
{
Toast.makeText(HomeActivity.this, "Usuario O Clave Erronea", Toast.LENGTH_LONG).show();
}
}
});



dialog.show();

}


override
protected void onDestroy() {
super.onDestroy();
// Close The Database
loginDataBaseAdapter.close();


}
}



muchas gracias de antemano.

kriogeN
28/08/15, 20:29:12
En ninguna parte de tu código usas el CheckBox, así que no pretenderás que lo haga de forma mágica.

deth
28/08/15, 22:20:21
En ninguna parte de tu código usas el CheckBox, así que no pretenderás que lo haga de forma mágica.
no se como usarlo ni donde ponerlo en el java por eso pregunto

kriogeN
28/08/15, 22:48:05
no se como usarlo ni donde ponerlo en el java por eso pregunto

Mediante findViewById obtienes el objeto CheckBox, para saber si está checkeado o no el método es "isChecked()"

Básicamente lo que tienes que hacer es justo después de mostrar el "Ingreso satisfactorio", comprobar si el CheckBox está checkeado y si lo está almacenar el usuario y contraseña que ha introducido el usuario, por ejemplo en un SharedPreferences.

Cada vez que inicias la aplicación compruebas si el usuario y contraseña están almacenados, y si lo están haces el proceso de login automáticamente.

c2alvaro
07/09/15, 15:18:04
Yo lo haria con un SharedPreferences, siempre al iniciar la app revisar los valores y dependiendo de ellos activar o desactivar el checkbox, como lo haria? como lo dice el compañero Kriogen