Proyecto 11 y 12

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Almacenamiento de datos mediante la clase SharedPreferences

Problema:

Confeccionar un programa que solicite el ingrese del mail de una persona. Guardar el
mail ingresado utilizando la clase SharedPreferences. Cada vez que se inicie la aplicación
almacenar en el control EditText el último mail ingresado. Disponer un botón para
almacenar el mail ingresado y finalizar el programa.

Disponemos un TextView y definimos su ID con el nombre tv1

la propiedad Text con "Ingrese el mail:".

Disponemos un EditText y definimos su ID con el nombre et1.

Disponemos un Button y definimos su propiedad Id con el nombre button1

su propiedad Text con el valor confirmar

su propiedad OnClic con el valor ejecutar

import android.app.Activity;

import android.content.Context;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.widget.EditText;

public class MainActivity extends Activity {

private EditText et1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
et1=(EditText)findViewById(R.id.et1);

SharedPreferences prefe=getSharedPreferences("datos",Context.MODE_PRIVATE);

et1.setText(prefe.getString("mail",""));

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

public void ejecutar(View v) {

SharedPreferences
preferencias=getSharedPreferences("datos",Context.MODE_PRIVATE);

Editor editor=preferencias.edit();

editor.putString("mail", et1.getText().toString());

editor.commit();

finish();

Almacenamiento de datos mediante la clase SharedPreferences - Propuesta


Realizar un programa que genere un número aleatorio entre 1 y 50, pedir que el operador
lo adivine, informar si ganó o si el número es mayor o menor al ingresado. Cuando el
operador lo adivine incrementar en uno el puntaje de juego. Cada vez que se ingrese a la
aplicación mostrar el puntaje actual, es decir recordar el puntaje en un archivo de
preferencias.

Codigo Fuente:
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {


private EditText et1;
private TextView tv2,tv3;
private int numero;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et1=(EditText)findViewById(R.id.et1);
tv2=(TextView)findViewById(R.id.tv2);
tv3=(TextView)findViewById(R.id.tv3);

SharedPreferences prefe=getSharedPreferences("datos",Context.MODE_PRIVATE);
String v=String.valueOf(prefe.getInt("puntos",0));
tv2.setText(v);
numero=1+(int)(Math.random()*50);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

public void verificar(View v) {


int valor=Integer.parseInt(et1.getText().toString());
if (numero==valor) {
int puntosactual=Integer.parseInt(tv2.getText().toString());
puntosactual++;
tv2.setText(String.valueOf(puntosactual));
tv3.setText("Muy bien ganó. Ahora pienso otro numero");
et1.setText("");
SharedPreferences
preferencias=getSharedPreferences("datos",Context.MODE_PRIVATE);
Editor editor=preferencias.edit();
editor.putInt("puntos", puntosactual);
editor.commit();

} else {
if (valor>numero) {
tv3.setText("Ingreso un numero mayor al que penso la maquina.");
} else {
tv3.setText("Ingreso un numero menor al que penso la maquina.");
}
}
}

Almacenamiento de datos en un archivo de texto en la memoria interna.

Problema:

Confeccionar un programa que permita almacenar notas en un control EditText y cuando


se presione un botón almacenar los datos del EditText en un archivo de texto llamado
"notas.txt".
Cada vez que se ingrese al programa verificar si existe el archivo de textos "notas.txt"
proceder a su lectura y almacenamiento de datos en el EditText.

Crear un proyecto en Eclipse de tipo "Android Project" y definir como nombre:


proyecto013 y localizarlo en el paquete com.androidya.proyecto013.

La interfaz visual, los controles y sus ID son los siguientes:

Código fuente:
import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et1 = (EditText) findViewById(R.id.et1);

String[] archivos = fileList();

if (existe(archivos, "notas.txt"))

try {

InputStreamReader archivo = new InputStreamReader(

openFileInput("notas.txt"));

BufferedReader br = new BufferedReader(archivo);

String linea = br.readLine();

String todo = "";

while (linea != null) {

todo = todo + linea + "\n";

linea = br.readLine();

br.close();

archivo.close();

et1.setText(todo);
} catch (IOException e) {

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

private boolean existe(String[] archivos, String archbusca) {

for (int f = 0; f < archivos.length; f++)

if (archbusca.equals(archivos[f]))

return true;

return false;

public void grabar(View v) {

try {

OutputStreamWriter archivo = new OutputStreamWriter(openFileOutput(

"notas.txt", Activity.MODE_PRIVATE));

archivo.write(et1.getText().toString());

archivo.flush();

archivo.close();

} catch (IOException e) {

}
Toast t = Toast.makeText(this, "Los datos fueron grabados",

Toast.LENGTH_SHORT);

t.show();

finish();

Veamos primero como grabamos datos en un archivo de texto. Esto se hace en el


método grabar que se ejecuta cuando presionamos el botón "grabar" (recordemos de
inicializar la propiedad "OnClick" del botón):

También podría gustarte