2012-09-14 33 views
12
  1. ¿Cómo recupero las preferencias compartidas que se han guardado de una actividad anterior de ?
  2. ¿Debo habilitar la escritura de archivos o alguna otra modificación manifiesta?

Respuesta

33

No necesita ninguna modificación de manifiesto especial para lograr eso.

Suponiendo que ya ha guardado las preferencias, puede leer esas preferencias en cualquier momento haciendo algo como lo que se muestra a continuación.

  1. Escribir en Preferencias compartidas del archivo:

    SharedPreferences prefs = getSharedPreferences("your_file_name", MODE_PRIVATE); 
        SharedPreferences.Editor editor = prefs.edit(); 
        editor.putString("yourStringName", "this_is_the_saved_value"); 
        editor.commit(); // This line is IMPORTANT. If you miss this one its not gonna work! 
    
  2. Leer de Preferencias compartidas archivo:

    SharedPreferences prefs = getSharedPreferences("your_file_name", 
        MODE_PRIVATE); String string = prefs.getString("yourStringName", 
        "default_value_here_if_string_is_missing"); 
    

Puede usar un archivo predeterminado para guardar/leer sus preferencias. Simplemente reemplace la primera línea de los dos fragmentos de código de arriba por algo como: SharedPreferences prefs = getDefaultSharedPreferences(getApplicationContext());

Eso es todo! Consulte la página dedicada a desarrolladores de Android para este asunto, here.

Espero que haya sido útil. Déjame saber sobre eso.

+0

Eso me ayudó un poco, gracias también – kabuto178

6

No necesita hacer nada especial, salvo asegurarse de que ambas actividades estén escribiendo/leyendo desde el mismo archivo. Debajo del capó, las preferencias simplemente se almacenan como un archivo XML.

Por lo tanto, sus opciones son:

1) el uso de ambas actividades PreferenceManager.getDefaultSharedPreferences() escribir en el archivo predeterminado.

2) Use Context.getSharedPreferences() especificando un nombre de archivo personalizado, y use el mismo nombre de ambas actividades.

+0

Gracias por aclararme eso, también entre el envío de intenciones y preferencias, ¿cuál es mejor usar para pasar variables que almacenan cadenas cortas? – kabuto178

+2

Depende de la cantidad de variables que desee aprobar y si desea que sean permanentes. Si tiene que pasar más de 20 variables permanentes, consideraría una base de datos sqlite. Si solo está pasando algunas variables entre actividades, usar intents es la mejor opción si no le importa que las variables se borren una vez que sale de la aplicación. –

1

Las preferencias compartidas son solo eso, compartidas. Siempre que guarde adecuadamente las preferencias después de editarlas llamando a Editor.commit(), estarán disponibles en el futuro.

Cuestiones relacionadas