Me gustaría tener un botón de casilla de verificación para recordar el Id. De usuario y la contraseña. ¿Alguien puede por favor guiarme en la dirección correcta sobre cómo comenzar?Agregue una casilla de verificación "Recordarme"
Respuesta
Acabo de construir esto en mi aplicación, aquí está el código básico y un poco de explicación:
Básicamente, la clave aquí es SharedPreferences. Configurará un objeto SharedPreferences y almacenará su nombre de usuario y contraseña después de que el usuario los haya ingresado. Luego, cuando vuelvan a ejecutar la aplicación, las preferencias tendrán sus datos almacenados y luego volverán a llenar los campos de inicio de sesión.
LoginActivity.java
package com.realsimpleapps.LoginTesting;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
public class LoginActivity extends Activity implements OnClickListener {
private String username,password;
private Button ok;
private EditText editTextUsername,editTextPassword;
private CheckBox saveLoginCheckBox;
private SharedPreferences loginPreferences;
private SharedPreferences.Editor loginPrefsEditor;
private Boolean saveLogin;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
ok = (Button)findViewById(R.id.buttonLogin);
ok.setOnClickListener(this);
editTextUsername = (EditText)findViewById(R.id.editTextUsername);
editTextPassword = (EditText)findViewById(R.id.editTextPassword);
saveLoginCheckBox = (CheckBox)findViewById(R.id.saveLoginCheckBox);
loginPreferences = getSharedPreferences("loginPrefs", MODE_PRIVATE);
loginPrefsEditor = loginPreferences.edit();
saveLogin = loginPreferences.getBoolean("saveLogin", false);
if (saveLogin == true) {
editTextUsername.setText(loginPreferences.getString("username", ""));
editTextPassword.setText(loginPreferences.getString("password", ""));
saveLoginCheckBox.setChecked(true);
}
}
public void onClick(View view) {
if (view == ok) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextUsername.getWindowToken(), 0);
username = editTextUsername.getText().toString();
password = editTextPassword.getText().toString();
if (saveLoginCheckBox.isChecked()) {
loginPrefsEditor.putBoolean("saveLogin", true);
loginPrefsEditor.putString("username", username);
loginPrefsEditor.putString("password", password);
loginPrefsEditor.commit();
} else {
loginPrefsEditor.clear();
loginPrefsEditor.commit();
}
doSomethingElse();
}
}
public void doSomethingElse() {
startActivity(new Intent(LoginActivity.this, MainActivity.class));
LoginActivity.this.finish();
}
}
El método al final, doSomethingElse() es el marcador de posición para ir al siguiente paso para su aplicación. Mi método doSomethingElse() simplemente carga otra actividad.
Aquí es un archivo XML básico para la página de inicio de sesión:
login.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000"
android:padding="10dp" >
<EditText
android:id="@+id/editTextUsername"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView1"
android:hint="Username"
android:inputType="textNoSuggestions"
android:imeOptions="actionNext" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editTextUsername"
android:hint="Password"
android:inputType="textPassword"
android:imeOptions="actionDone" />
<CheckBox
android:id="@+id/saveLoginCheckBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editTextPassword"
android:text="Save Login?"
android:textColor="#FFF" />
<Button
android:id="@+id/buttonLogin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/saveLoginCheckBox"
android:layout_marginTop="40dp"
android:text="Login" />
</RelativeLayout>
IMPORTANTE: Es probable que desee para cifrar la contraseña antes de almacenarla en SharedPreferences. Los detalles para eso están más allá del alcance de esta pregunta, pero aquí está el código que solía hacer eso: http://www.androidsnippets.com/encryptdecrypt-strings. También tendrás que idear algún tipo de esquema clave.
Este código ha sido probado en Android 2.1, SDK 7. Avísame cómo te funciona.
David
Muchas gracias por toda su ayuda David! Me llevó unos 40 minutos entenderlo. Me puse en marcha y ahora :) –
¡Funciona a la perfección! Gracias .. – TharakaNirmana
simplemente toke algo de código para mi aplicación, funcionó bien! – Bachask8
- 1. Cómo crear la casilla de verificación "recordarme" mediante la biblioteca de sesión de Codeigniter?
- 2. jsTree Ocultar casilla de verificación
- 3. Casilla de verificación Grails
- 4. Agregue una casilla de verificación a la galería de imágenes del producto (como "Desactivar/Excluir")
- 5. Marca de verificación en una casilla de verificación
- 6. Jquery si la casilla de verificación está marcada agregue una clase
- 7. ¿Cómo desactivo una casilla de verificación?
- 8. FDF: cómo marcar una casilla de verificación?
- 9. ¿Cómo agotar una casilla de verificación html?
- 10. defecto comprobar una casilla de verificación
- 11. ¿Cómo implemento una función "Recordarme" en una actividad de Android?
- 12. Android Casilla de verificación Grupo
- 13. Casilla de verificación en ExpandableListView
- 14. QT - casilla de verificación desmarque
- 15. Casilla de casilla de verificación DataGridView "seleccionar todo" rendimiento
- 16. Recordarme Sesiones y
- 17. JQuery La verificación de la casilla de verificación está marcada
- 18. Winforms Casilla de verificación Enfoque Problema si no se aplica texto en la casilla de verificación
- 19. Estilo de casilla de verificación de Android
- 20. Lista de Android y casilla de verificación
- 21. valor de casilla de verificación en jquery
- 22. casilla de verificación - notificación de cambio
- 23. check_box_tag valor predeterminado marcado para recordarme
- 24. Catch marcado evento de cambio de una casilla de verificación
- 25. Combobox con casilla de verificación en winforms
- 26. datatables create filter casilla de verificación
- 27. Cambiar Html.DisplayFor casilla de verificación booleana MVC
- 28. Extjs 4 casilla de verificación no visible
- 29. casilla de verificación jquery o javascript oncheck?
- 30. casilla de verificación como alternativa al captcha?
¿Ya construir la función de inicio de sesión completo, excepto la funcionalidad de recordar? – WarrenFaith