La plataforma de android nos da varias facilidades para el almacenamiento permanente de datos, es decir los datos no se borra cuando se cierra la aplicaci贸n.
Almacenar datos en nuestro dispositivo android empleando un archivo de texto que se guardar谩 en el almacenamiento interno del equipo.
En esta oportunidad se desarrollar谩 una aplicaci贸n que permitta almacenar notas en un control Edtitext y cuando se presione un bot贸n almacenar los datos del editText en un archivo de texto llamado "notas.txt"
Para el dise帽o de la interfaz visual de la aplicaci贸n agregar los controles Editext y un button, el EditText modificamos su id, su inputType indicamos que sea multilinea y luego el dise帽o segun lo deseen cada desarrollador, en esta oportunidad lo cambie de fondo de color y tambien de color de texto, su tama帽o.
Para el boton lo que se hizo es un metodo en la clase mainactivity llamado guardar y llamarlo desde el onclick del boton, tambien el texto indicamos que sera guardar.
Dise帽o de la Interfaz
Una vez realizado el dise帽o primero implementamos las lineas de codigo para guardar en un archivo de texto, esto se hace en la clase mainactivity, creamos un metodo llamado guardar, realizamos un try catch, dentro del try llamamos a OutputStreamWriter y al constructor de dicha clase le enviamos el datos que retorna el metodo openFileOutput y le pasamos el nombre que sera del archivo de texto y el modo de apertura.
Seguidamente si el archivo se creo correctamente procedemos a llamar al metodo write y le pasamos el string a guardar, que sera el editText convertido a string con toString(), luego limpiamos el buffer con el metodo flush, y cerramos el archivo.
Llamamos al catch y lanzamos un excepcion IOexcepcion si ocurre un error que muestre en consola.
Luego mostramos una alerta con toast indicando que los datos se guardaron e indicamos el tiempo de duraci贸n del toast, luego lo mostramos y llamamos a un metodo finish(), para que cierre la aplicac贸n, con esto tendremos creado y almacenado lo escrito en el editext.
Para recuperar los datos almacenados creamos un arreglo llamados archivos que se inicializara con el metodo fileList(),llamamos a un metodo boobleado parq consultar si el arreglo de tipo string existe,
si es asi se crea un objeto inputstreamreader llamado archivo y le pasamos el contructor que devuelve un metodo openfileinput.
Creamos un objeto de la clase bufferreader y le pasamos el objeto de inputstreamreader, leemos la primer linea del archivo de texto y almacenamos en linea, creamos un variable string llamado todo, que esta vacio,
consultamos con while si linea es diferente de null si es diferente que todo sea sumando con linea y concatenado con salto de linea, seguido pasamos a la siguiente linea leemos y pasomos al dato todos esa linea hasta que no quede linguna linea.
cerramos el buffer, luego cargamios el edittext ccon el contenido del string todos.
String[] archivos = fileList(); if(existe(archivos,"notas.txt")){ try { InputStreamReader archivo = new InputStreamReader(openFileInput("notas.txt")); BufferedReader bufferedReader = new BufferedReader(archivo); String linea = bufferedReader.readLine(); String todo=""; while (linea != null){ todo=todo + linea + "\n"; linea = bufferedReader.readLine(); } bufferedReader.close(); archivo.close(); edtingresado.setText(todo); }catch (IOException e){ System.out.println("Error code : " + e); } }
Archivo Java
Vide Tutorial
Suscribanse al canal y dale activar la campanita 馃敂 , si les gusto馃挀 el contenido, dale compartir.
Bienvenidos al blog en esta oportunidad se desarrollar谩 un proyecto en android studio acerca de sharedpreferences, en la publicaci贸n anterior se reviso un proyecto tambien interesante que es Android Studio 4: Cargar web en webview en Android Studio
La plataforma de android nos da varias facilidades para el almacenamiento permanente de datos, es decir los datos no se corra cuando se cierra la aplicaci贸n.
Cuando tenemos que almacenar una cantidad limitada de datos es adecuado utilizar sharedpreferences. ejemplo donde utlizar sharedpreferences es cuando la aplicaci贸n utilice configuraciones y deseamos almacenar esas configuraciones para cuando nuevamnete visite esa app no se pierdan las configuraciones que hizo anterior.
El proyecto plantea confeccionar una aplicaci贸n que solicite el ingreso de un correo electronico de una persona, guradar es correo ingresado utilizando la clase sharedpreferences. cada vez que se vuelva a iniciar la aplicaci贸n que cargue el correo ingresado anteriormente. este archivo que se crear cuando se usa sharedpreferences lo pueden ver en data>data>ID de la aplicaci贸n.
En el dise帽o de la interfaz de la aplicaci贸n se requieren, los siguientes controles:
✅TextView - Un textview que muestre al usuario un texto "Ingrese su correo :" ✅EditText - Un editetxt que indique al usuario un hint "mail@gmail.com" y cambiamos su ID de los dos editText para identificarlos. ✅Button - Un button que realizar谩 la funcion de almacenar esos datos ingresados cuando se presione.
Bien en el dise帽o del archivo xml tenemos lo siguiente:
Archivo xml
En la Clase MainActivity creamos dos objetos de tipo TextView que luego en el metodo oncreate hacemos la referencia de esos metodos con el id de los controles de la vista, luego creamos un metodo llamado ejecutar o guardar que utilice sharedpreferences que almacene el metodo getsharedpreferences, dentro de los parentesis indicamos el nombre del archivo que guardar谩 el valor x, luego indicamos el modo de acceso a ese archivo, en esta oportunidad utilizaremos MODE_PRIVATE, que indica a la aplicaci贸n que solo esa aplicaci贸n tendra acceso a ese archivo, luego llamamos a editor para que se pueda utilizar el metodo, putstring que almacenara una variable que contrenda los datos que se ingresen en el primer editetxt.
Capturar los datos en el Onclick llamamos nuevamente a sharedpreferences e indicamos el nombre del archivo que se almaceno y el tipo de acceso, luego llamamos al editetx que capturar谩 ese datos almacenado en la variable mail atravez de su metodo de sharedpreferences.getstring.
Archivo Java
En el video del Canal de Youtube tambien lo pueden ver el codigo fuente:
Luego de crear el proyecto en android studio, lo que tenemos que hacer es dise帽ar la interfaz grafica de la aplicaci贸n, para ello tenemos que utlizar un textview, un edittext, un button y un webview. el dise帽o se realizara de la siguiente forma, como la imagen.
El archivo xml los comparto tambien, en las iguientes lineas abajo, en el textview solo indicamos un texto referencia "Ingrese un sitio web:", en el Edittext tenemos que modificar el id de ese contrar para poder identificarlo e indicar un hint que sea un ejemplo para el usuario que ingrese un sitio web como por ejemplo "www.google.com", en el button no solo se modificar el icon, revisando el video lo pueden realizar y en el webview solo ponemos el id para identificarlo.
Archivo xml
En la clase main de la actividad lo que se hace es primero crear dos objetos, un objeto de la clase editetxt y un objeto de webview, luego en el metodo oncreate realizamos la referncia de esos objetos con el ID de los controles de la vista, luego se crea un metodo llamado ShowWeb, donde convertimos lo que recibe el editext a tipo string y almacenamos en una variable string, luego llamamos al webview y con su metodo loadUrl cargamos esa web indicado por el usuario, el metodo lo indicamos al button de la vista en el ONCLICk.
Archivo Java
En el video del Canal de Youtube tambien lo pueden ver el codigo fuente:
Una aplicaci贸n esta compuesta por varias partes: Actividad (Activity): elementos b谩sicos de visualizaci贸n o pantallas que conforman una aplicaci贸n.
Vistas (View): son los elementos que componen la interfaz de usuario de una aplicaci贸n: por ejemplo, un bot贸n o una entrada de texto.
Layout: es un conjunto de vistas agrupadas de una determinada forma.
Servicio (Service): proceso que se ejecuta en segundo plano sin la necesidad de una interacci贸n con el usuario.
Intenci贸n (Intent): representa la voluntad de realizar alguna acci贸n como realizar una llamada de tel茅fono.
Fragment: est谩 formado por la uni贸n de varias vistas para crear un bloque funcional de la interfaz de usuario.
Receptor de anuncios (Broadcast Receiver): recibe anuncios broadcast, originados por el sistema o aplicaciones, y reacciona ante ellos.
Proveedores de contenido (Content Provider): mecanismo est谩ndar para que las aplicaciones puedan compartir datos sin necesidad de comprometer la seguridad del sistema de ficheros.
Disenar una aplicaci贸n android Desarrollar una Aplicaci贸n Android significa usar de una manera apropiada los componentes b谩sicos de Android.
Cuando un usuario navega por tu app, sale de ella y vuelve a entrar, las instancias de Activity de tu app pasan por diferentes estados de su ciclo de vida. La clase Activity proporciona una serie de devoluciones de llamada que permiten a la actividad saber que cambi贸 un estado, es decir, que el sistema est谩 creando, deteniendo o reanudando una actividad, o finalizando el proceso en el que se encuentra.
Ciclo de vida de una actividad
Es probable que necesites implementar todos los m茅todos del ciclo de vida. Sin embargo, es importante que comprendas cada uno de ellos y que implementes aquellos que garanticen que tu app se comporte como esperan los usuarios.
onCreate()
Debes implementar esta devoluci贸n de llamada, que se activa cuando el sistema crea la actividad por primera vez. Cuando se crea la actividad, esta entra en el estado Created. En el m茅todo onCreate(), ejecutas la l贸gica de arranque b谩sica de la aplicaci贸n que debe ocurrir una sola vez en toda la vida de la actividad.
Este metodo se implementa automaticamente al crear nuestra aplicaci贸n, en la clase main se implementa el metodo como las lineas abajo muestra.
onStart()
Cuando la actividad entra en el estado Started, el sistema invoca esta devoluci贸n de llamada. La llamada onStart() hace que el usuario pueda ver la actividad mientras la app se prepara para que esta entre en primer plano y se convierta en interactiva.
Este metodo se encuentra dentro de la clase de la actividad, y esta implementado en la clase AppCompatActivity.
En esta oportunidad en la clase main li pimplementaremos como las lineas abajo.
onResume()
Cuando la actividad entra en el estado Resumed, pasa al primer plano y, a continuaci贸n, el sistema invoca la devoluci贸n de llamada onResume(). Este es el estado en el que la app interact煤a con el usuario. La app permanece en este estado hasta que ocurre alg煤n evento que la quita de foco.
En esta oportunidad en la clase main li pimplementaremos como las lineas abajo.
onPause()
El sistema llama a este m茅todo a modo de primera indicaci贸n de que el usuario est谩 abandonando tu actividad (aunque no siempre significa que est谩 finalizando la actividad); esto indica que la actividad ya no est谩 en primer plano (aunque puede seguir siendo visible si el usuario est谩 en el modo multiventana).
En esta oportunidad en la clase main li pimplementaremos como las lineas abajo.
onStop()
Cuando el usuario ya no puede ver tu actividad, significa que ha entrado en el estado Stopped, y el sistema invoca la devoluci贸n de llamada onStop(). Esto puede ocurrir, por ejemplo, cuando una actividad reci茅n lanzada cubre toda la pantalla. El sistema tambi茅n puede llamar a onStop() cuando haya terminado la actividad y est茅 a punto de finalizar.
En esta oportunidad en la clase main li pimplementaremos como las lineas abajo.
onDestroy()
Se llama a onDestroy() antes de que finalice la actividad. El sistema invoca esta devoluci贸n de llamada por los siguientes motivos:
La actividad est谩 terminando (debido a que el usuario la descarta por completo o a que se llama a finish().
El sistema est谩 finalizando temporalmente la actividad debido a un cambio de configuraci贸n (como la rotaci贸n del dispositivo o el modo multiventana).
En esta oportunidad en la clase main li pimplementaremos como las lineas abajo.
Creamos un proyecto nuevo e implementamos los metodos que se encuentran abajo de cada concepto del ciclo de vida, e importante es importar la clase Toast, en los proximas publicaciones veremos acerca de este Toast.
Al Ejecutar el proyecto e instalarse en un simulador tendremos el siguiente resultado. Al eejecutar el proyecto muestra el primero metodo que es desues de oncreate que es onstart, luego nmuestra el toast onresume que es cuando la actividad se encuentra en primer plano, al regresar al menu de aplicaciones la actividad pasa a estado de onPause, luego onStop, si cerramos la aplicaciones entonces vemos que pasa al ultimo estado que es Ondestroyed.
Es todo lo que se tenia planeado abarcar en cuanto a esta publicaci贸n. nos vemos en la proxima publicaci贸n, no se olviden de compartir el contenido y de suscribirse al canal de Youtube.