Preferencias compartidas en Android

Hoy veremos la forma más fácil de almacenar datos con una aplicación de muestra. Generalmente, cuando decimos almacenar datos, primero pensamos en SQL, MongoDB, etc. Pero pronto veremos que no los necesitamos para datos simples .

Cuando decimos datos simples, generalmente guardamos datos como la edad del usuario , de qué país es y su configuración preferida . Estos datos no se pierden aunque el usuario cierre la aplicación.

¿Qué es Preferencias Compartidas?

Podemos guardar datos simples sin necesidad de nada extra. Es una estructura que funciona con un par Clave-Valor . Los tipos de datos que podemos almacenar se limitan a; Int, Boolean, Float, Long y String.

Ahora usemos esta estructura en una aplicación en la que obtenemos la edad del usuario y la guardamos. (Dejo el enlace de GitHub aquí ).

class MainActivity : AppCompatActivity() {

    private lateinit var preferences : SharedPreferences

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        }
}

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        preferences = this.getSharedPreferences("com.aliduman.savemyage"
                                                , Context.MODE_PRIVATE)
    }

esto :

Lo usamos para mostrar la actividad en la que estamos.

com.aliduman.savemyage:

En esta parte solo nos pide un nombre. Generalmente, ponemos el nombre del paquete en esta parte.

Contexto.MODE_PRIVATE:

El modo define quién puede acceder a las preferencias de nuestra aplicación. Privado es el modo predeterminado y establece que solo se puede acceder desde esta aplicación.

Usemos SharedPreferences después de hacer las definiciones y configuraciones. Nuestro objetivo es ingresar y guardar la edad del usuario, luego almacenar esta edad y mostrársela al usuario después de cerrar y abrir la aplicación.

var currentAge = preferences.getInt("age",-1)

getInt():

Este método devuelve el valor dado. Si no se crea antes, lo hará.

edad:

Esta es la clave del valor que queremos mantener.

-1:

Este parámetro lo usamos para asignar un valor por defecto si no se ingresa ningún dato.

if (currentAge != -1) { //if user saved age before..
    age_text.hint = currentAge.toString()

 } else {//if first time user saved age

      save_button.setOnClickListener {
          var ageInput =  Integer.valueOf(age_text.text.toString())
          preferences.edit().putInt("age", ageInput).apply() //We save it to SharedPreferences.
          }
   }

editar()

Lo usamos para hacer cambios o cesiones en nuestro valor.

ponerInt()

Lo usamos para poner datos en lo que almacenamos.

aplicar()

este método es necesario para implementar todos estos cambios.

El usuario ingresa el número 23 y presiona el botón guardar.↑

Final feliz, cuando el usuario vuelve a ingresar a la aplicación, podemos mostrar su edad con nuestro algoritmo y SharedPreferences.↑

!¡ADVERTENCIA!

Omití algunos pasos importantes como la comprobación de valores nulos para centrarme en SharedPreferences. No olvide verificar si los datos que ingresa el usuario son nulos o no. Código limpio, código confiable

Suggested posts

Turo redujo el tiempo de inicio de su aplicación en un 77 % utilizando las mejores prácticas y las herramientas para desarrolladores de Android

Turo redujo el tiempo de inicio de su aplicación en un 77 % utilizando las mejores prácticas y las herramientas para desarrolladores de Android

Turo es el mercado de autos compartidos más grande del mundo donde los huéspedes pueden reservar cualquier auto que deseen, y donde lo deseen, de una comunidad vibrante de anfitriones confiables. Los desarrolladores de Turo recientemente invirtieron mucho en mejorar el rendimiento de inicio de su aplicación para Android.

Dominar las arquitecturas de desarrollo de Android (MVC, MVP, MVVM, MVI)

Dominar las arquitecturas de desarrollo de Android (MVC, MVP, MVVM, MVI)

Profundicemos en el mundo de las arquitecturas de desarrollo de Android. En esta guía completa, exploramos diferentes patrones arquitectónicos, marcos y mejores prácticas para ayudarlo a crear aplicaciones de Android robustas, escalables y mantenibles.

Related posts

Twitter de televisión en red

Twitter de televisión en red

Lo que es viejo ahora es nuevo otra vez y lo que solía ser algo reluciente ahora se siente aburrido. No me refiero a que los jeans JNCO regresen entre los chicos geniales del centro de la ciudad junto con otras modas de fines de la década de 1990.

Cómo salvar el planeta y ganar dinero

Cómo salvar el planeta y ganar dinero

¿Cuántas veces has tirado una botella de plástico, un tarro de cristal, una lata de aluminio o un paquete de energía verde sin pensarlo dos veces? ¿Cuántas veces has deseado poder obtener algo a cambio de reciclarlos? Si usted es como la mayoría de las personas, la respuesta probablemente sea muchas veces. El reciclaje a menudo se ve como una molestia, una tarea o un deber que no brinda ningún beneficio inmediato o tangible.

Ese Archivo de Amenazas: Vol 7 Black Basta

Ese Archivo de Amenazas: Vol 7 Black Basta

En el mundo interconectado de hoy, la amenaza de los ataques cibernéticos es más frecuente que nunca. Los ciberdelincuentes y los actores del estado-nación buscan constantemente explotar las vulnerabilidades y robar datos valiosos, lo que representa un riesgo significativo para las organizaciones de todos los tamaños.

La semana de aprendizaje en el trabajo es más importante de lo que piensas

La semana de aprendizaje en el trabajo es más importante de lo que piensas

A menudo nos encontramos luchando para implementar lo que sabemos que es bueno para nosotros. Desde decirle a un ser querido que lo amamos hasta recordar hablar como un pirata, siempre habrá quienes digan que no hace falta un día, una semana o un mes de eventos porque ya están haciendo esas cosas.