Cerrar sesión cerrar SharedPreferences
Tengo una página de inicio de sesión que guarda el nombre de usuario y la contraseña en Preferencias compartidas. Tengo otra clase de actividad que incluye el botón de cierre de sesión. Quiero borrar las preferencias compartidas cuando haga clic en el botón de cierre de sesión. El problema es que no consigo las SharedPreferences de esta clase. ¿Cómo puedo obtener SharedPreferences?
Página de inicio de sesión
- ¿La aplicación de actualización borra las preferencias compartidas o elimina las alarmas establecidas por la aplicación?
- Copia de seguridad de SharedPreferences de Android no funciona
- Usar SharedPreferences en modo multiproceso
- Almacenamiento de una matriz String en SharedPreferences
- Expectativa de puntero nulo al obtener valores de preferencia compartida
public class MainActivity extends Activity { public SharedPreferences.Editor loginPrefsEditor; public SharedPreferences loginPreferences; private Boolean saveLogin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); name = (EditText) findViewById(R.id.et_Username); pass = (EditText) findViewById(R.id.et_Password); login = (Button) findViewById(R.id.bt_Login); loginPreferences = getSharedPreferences("loginPrefs", MODE_PRIVATE); loginPrefsEditor = loginPreferences.edit(); saveLogin = loginPreferences.getBoolean("saveLogin", false); if (saveLogin == true) { name.setText(loginPreferences.getString("username", "")); pass.setText(loginPreferences.getString("password", "")); } login.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { name1 = name.getText().toString(); pass1 = pass.getText().toString(); //new Thread (new Task()).start(); loginPrefsEditor.putBoolean("saveLogin", true); loginPrefsEditor.putString("username", name1); loginPrefsEditor.putString("password", pass1); loginPrefsEditor.commit(); new myAsyncTask().execute(); } }); }
Botón de cierre de sesión en AnotherActivity
logout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Launching News Feed Screen Intent i = new Intent(getApplicationContext(), MainActivity.class); startActivity(i); } });
- Editar las preferencias compartidas de DDMS
- Unidad de Google para realizar copias de seguridad y restaurar la base de datos y las preferencias compartidas de la aplicación de Android
- Obtener SharedPreferences de un servicio
- Nube de Android - Administrador de copia de seguridad vs unidad
- Excepción de puntero nulo de Android para las preferencias compartidas
- Android, sharedferencias o almacenamiento interno?
- Cómo resolver un error: getSharedPreferences (String, int) no está definido para el tipo nuevo View.OnClickListener () {}
- Preferencias compartidas de Android con múltiples actividades
Prueba esto !
logout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Launching News Feed Screen SharedPreferences preferences =getSharedPreferences("loginPrefs",Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.clear(); editor.commit(); finish(); });
¿Por qué no escribir una clase de utilidad SharedPreference? Esto se puede acceder desde ambas actividades.
Creo que tienes problemas para entender las preferencias compartidas en android.
Según documentación oficial
Para obtener un objeto SharedPreferences para su aplicación, utilice uno de los dos métodos siguientes:
GetSharedPreferences (): utilice esto si necesita varios archivos de preferencias identificados por nombre, que especifica con el primer parámetro.
GetPreferences (): utilice esta opción si sólo necesita un archivo de preferencias para su actividad. Debido a que este será el único archivo de preferencias para su actividad, no proporcionará un nombre.
Debe tener un Contexto para usar los dos métodos anteriores.
También las preferencias compartidas se almacenan como un par de valores clave, por lo que el borrado debe significar que se establecen los valores en una cadena vacía.
Para obtener más detalles, y una mejor explicación puede leer aquí http://developer.android.com/guide/topics/data/data-storage.html#pref y http://www.vogella.com/tutorials/AndroidFileBasedPersistence/article .html
Espero que esto ayude.
¡Aclamaciones!
Es tan simple. Como si guardara sus datos en SharedPrefernce
SharedPreferences sp = getSharedPreferences("MYKEY",0); SharedPreferences.Editor editor = sp.edit(); editor.putString("username" , username); editor.putString("password" , password);
Ahora puedes recuperar como en cualquier clase de tu aplicación como,
SharedPreferences sp = getSharedPreferences("MYKEY",0); String uname = sp.getString("username"); String pwd = sp.getString("password");
Y para borrar su nombre de usuario y contraseña
editor.clear(); editor.commit();
o
editor.remove("username"); editor.remove("password"); editor.commit();
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = mPrefs.edit(); editor.clear(); editor.commit();
- Error: No se puede obtener el puente de depuración en el estudio de Android
- No se puede alinear un botón Imagen derecho mientras que el otro es el izquierdo